Add extensible state and hooks

Closes #29
Example shows two colors
interpreter doc
new colors
Merge branch 'hook'

* hook:
  new colors
  interpreter doc
  Example shows two colors
  Add extensible state and hooks