Add comment node parsing and handling, and make eval canonicalise the ast before evalling.

This canonicalisation does 'the right thing' when it comes to AtomishForm nodes, meaning that they can be used
for any kind of splicing - though support is patchy at the moment.

Also add a printer that does not elide AtomishForm nodes.