[globalisel][docs] Rework GMIR documentation and add an early GenericOpcode reference

Summary:
Rework the GMIR documentation to focus more on the end user than the
implementation and tie it in to the MIR document. There was also some
out-of-date information which has been removed.

The quality of the GenericOpcode reference is highly variable and drops
sharply as I worked through them all but we've got to start somewhere :-).
It would be great if others could expand on this too as there is an awful
lot to get through.

Also fix a typo in the definition of G_FLOG. Previously, the comments said
we had two base-2's (G_FLOG and G_FLOG2).

Reviewers: aemerson, volkan, rovka, arsenm

Reviewed By: rovka

Subscribers: wdng, arphaman, jfb, Petar.Avramovic, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D69545
diff --git a/llvm/docs/MIRLangRef.rst b/llvm/docs/MIRLangRef.rst
index c2c14d9..0380bcc 100644
--- a/llvm/docs/MIRLangRef.rst
+++ b/llvm/docs/MIRLangRef.rst
@@ -345,6 +345,8 @@
 
 ``Alignment`` is specified in bytes, and must be a power of two.
 
+.. _mir-instructions:
+
 Machine Instructions
 --------------------
 
@@ -407,6 +409,8 @@
 The first instruction is often a bundle header. The instructions between ``{``
 and ``}`` are bundled with the first instruction.
 
+.. _mir-registers:
+
 Registers
 ---------