refactoring the progress, fixes #11

- progress is now passed via the options object upon initialisation
- if it's not set it defaults to a dummy progress object that just
  no-ops everything
- tests were cleaned up as well

This reduces coupling quite a bit and makes it easier for the progress
module to be changed over later on (mac's growl anyone?)
made initialisation/cleaning up modules in main a bit clearer
small readability fixes
moved prep work (perparing images, pagination) into separate exported method

... and made it callable in main.js

this is to make things slightly DRY-er and for testability
simplified test calling in makefile
initial work on writing tests for book module

- wrote tests for compilePdf and compileWebpage
- wrote pending tests for the compilePages method
removed only
added tests for compilePages method
changes to main module to make it more testable

- rejigged the frankly ridiculous method of setting options from both
  the manifest and command line - this removes the need to call
  options.set twice
- added an optional callback that gets added at the end each main
  method, which allows us to know when the process is done
added tests for main, closes #3
added utils module for small methods that don't fit anywhere else
significant refactoring of book module create pages from sections
moving html.getBodyContent method to utils

as it's sorta unrelated to what the html module actually does
renamed html module to parser
Merge branch 'refactoring'