Fixed small bug in renamer

Still need to use name options for local variables to match environment type
signature.
Rearranged renamer code within file

Smaller helper functions at top, giant case-by-case functions at bottom.
Fixed up interface a bit

Now matches things actually implemented
Fixed up namespaces a bit

Really only need 2 for compilation / renaming purposes.
Implemented leaf renaming

Renamer is (hypothetically) complete! Time for some operator precedence
parsing.
Added assertion for rename_leaf
Working on fixity resolution

Can now declare fixities, adding to global hashtable.
Wrote all the boring parts of fixity resolution

Does everything except the actual work
Changed how constraints on operators passed in

More logical now
Implemented fixity resolution

Copied from
https://ghc.haskell.org/trac/haskell-prime/wiki/FixityResolution
and wrote some explanatory comments after repeatedly getting seriously confused
about how this basic operator-precedence algorithm works.
Renamer / fixity resolver complete, uncompiled

Really, really untested. In fact, haven't even tried to compile in ages. Will
get to that after desugaring...