howling mad ui refactoring

refactored editing api to use boundaries
created formatting module that exposes format() and style() methods
fixed tests
added documentation
All function documentation should be in the declarative mood ("updates", "gets", "executes") rather than the imperative mood ("update", "get", "execute").
We have yet codify this convention, but we are using it throughout.