Smartdown evaluation engine

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

If we're packing it with the gem then we should make sure it's using the same "public" API we'd expect other clients to use, as this is effectively a demonstration client and if it's used for reference/copied then we want it to be proper