Add defmacro macro.

Just a first cut, things are about to change in the codebase which
take precedence.
Add -error method to SeqEx protocol

This is a parallel method to -end. It returns an error message given
the current state while -end returns models.
Change when models are defined.

State is now returned from exec and -end must be explicitly called
on the final state.
model -> models
cap-model -> cap-tokens
move the dash of protocol methods to end

Did this to avoid a Clojure bug with protocol methods.
formatting
Remove experimental error code.
Update math example code
Add initial error messages
Remove stubbed out and unused functions