Bring booklet state across from mAgriculture repo.
Allow State.display() to return a promise if needed.
Simplify BookletState by having a function for retrieving the current page text (relies on ability to return a promise from self.display()).
Add docs for BookletState and actually use footer_text.
Add tests for booklet state and fix bugs revealed.
Add tests for new display() handling logic inside InteractionMachine.
Merge branch 'feature/issue-20-add-booklet-state' into develop