Refactor Spirit examples

Archive older examples to dedicated, unbuilt folder. This is done
to retain the files as browsable.

Refactor datatype/filereader into single PropertyChecker program that
runs datatype CLI when run without arguement, filereader otherwise.
Provide customization of skip parser

Allow use of custom skip parser in Property/PropertyList grammars.
Provide custom skipper for whitespace and Bash/Python style comments
in documents.

Update parser backends to use new skippers.
Create better typenames

Rename "PropertyParser" -> "PropertyGrammar" to better reflect
its task.
Add rule for Property '@description' directive

Allow properties to be defined with an optional description, e.g.

@description "foo does bar"
foo : int = 1

or just

foo : int = 1

Attribute to description rule is a string, but is ignored in current
grammar as the Property class does not yet support this.
Update internal implementation of PropertyGrammar

Provide cleaner internal structure for PropertyGrammar rules.
Remove requirement to specify a subtree as a distinct type.
Provide strict integer parsing so that decimal parts of doubles are
not left 'dangling', e.g.

foo : int = 1.23

would parse but leave ".23" dangling. Whilst that does result correctly
in a parse error, strict parser helps to localize error better.
Archive remining old Spirit code