Smartdown evaluation engine

Also added a command line script in `bin/smartdown` which can evaluate smartdown.

Happy to go with whatever notation people prefer though, as long as we all use the same one :-D