Implemented function binding bool in decl bind

Will make it possible to sort through multi-line function bindings without
accidentally thinking we have duplicate identifier declaration.
Revert "Small grammar fix for data constructors"

This reverts commit 392b5d0713f6b9b63e4d5258aff3eabc3fb0a37e.

This change introduced grammar conflicts. Will have to dig through the btype
and separate out the constructor "by hand"
parser_check now converts data constructors

No need to modify grammar (and introduce grammar conflicts)
Implemented duplicate global identifier checks

Also correctly handles duplicate adjacent function bindings (which are really
just different patterns for the same function)
Working on rename algorithm

Long, long recursive descent updating current environment
Implemented yet another post parse check

Now checks that class / instance bodies only contain valid declarations
(instances don't have type or fixity declarations, etc.)