Smartdown evaluation engine

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

i've branched off on an engine-api branch now, with some #WIP and #TODOs