First part of supporting methods in C output.

* Methods are recognised and output.
* This nodes are output.

This doesn't work yet...
UDT methods are called differently to functions.

This still won't work properly...
Whitespace.
Better MangleNames operation for the C generator.

This will break the build. We need to fix how functions / methods are
resolved.
It seems like the prototypes will need to store what they refer to.
UDT Methods work.
Added exception to check function target is safe.

Exception hierarchy needs to be cleaned up.