Stop disallowing augmented assignment in typecheck

This will probably make things fall over all over the place when using
augmented assignment, rather than producing a nice clean error message
saying that "binary operation + cannot be applied to type `A`".
Get augmented operators to almost work.

Currently any attempt to use an augmented assignment operator which
should be valid (i.e. the *Assign trait is implemented correctly) is
failing in an LLVM assertion as it seems an extra argument is being
prepended to the function call. Still trying to figure this one out; I'm
rather out of my depth. :-)