Improved const invariants

@bsoetaer 
Added new functionality for defining commonly used contracts in a single line.  'const' and 'require_square' are now implemented using this system.
Isn't particularly relevant to this commit but I noticed that if there is no precondition and/or postcondition defined for a method then the class invariant will not be added properly to the automatic call cycle and therefore will not be called.