All preprocessor directives are now in $[this form], e.g. [include] ->
$[include].  $[include] and $[define] both working again in a totally
separate preprocessing step.
Removed some code duplication in Preprocessor and added an error for unmatched 0 etc.