Altered function signatures to take opts hash

This will allow us to be a bit more descriptive about the rendering
options we're passing to the methods instead of just a list of booleans
that happen to be in the right order.
Generate supplemental materials

Fixes #34

This is a somewhat haphazard fix, in my opinion, but doing it in a
better way requires refactoring request routing. That needs to be done
soon, very very soon, but that day is not today.

To use this, simply add a slide with the classes of 'supplemental' and
whatever type of supplemental material it is.

For example:
  <!SLIDE supplemental solutions>

This can be included in the same file as the labs, so this means that we
can make each lab, its corresponding guide page, and its solution all
self contained.

To access the supplemental materials, simply browse to:
  http://<host>:9090/supplemental/<type>

For example:
  http://localhost:9090/supplemental/solutions
Added section autonumbering

Added special tags for automagically including counters
* `~~~SECTION:MAJOR~~~` translates to section counter
* `~~~SECTION:MINOR~~~` translates to auto resetting in-section counter

This means that we can now replace our Lab/Exercise/Solutions headers
with macros, such as:
* `# Lab ~~~SECTION:MAJOR~~~.~~~SECTION:MINOR~~~: Lab Title`
Source highlight in onepage views

Fixes a longstanding showoff bug in which the sh_highlight js files
didn't get loaded properly.
Added file inclusion tag

Include a tag like `~~~FILE:fundamentals-4.1-solution.pp:Puppet~~~` and
it will be replaced with the contents of that file, wrapped in the
proper HTML to display it as code, syntax highlighted with the classes
provided. The general case is these two forms:
* `~~~FILE:<filename>:<space separated list of classes>~~~`
* `~~~FILE:<filename~~~`

Please note that this currently has a bug in which the tag replacement
happens AFTER the markdown parsing. It should happen first, but that
alters the DOM in a strange way that I need to debug first.
Fixed the markdown parsing order bug

Reordered some of the logic so that it was more readable and then it
was obvious where the mixup was.
Removed a misleading comment
Added pagebreak tag support

Any place you'd like an explicit pagebreak, in either .handout notes or
in supplemental materials, simply include the tag `~~~PAGEBREAK~~~`.

Supplemental materials will now display the entire content in the
browser preview instead of the first page only. You will need to print
to PDF in order to have an understanding of where pagebreaks, soft and
hard, will occur.
Styled code boxes for consistency

Also to get jsut a tiny bit more on a line before they start wrapping.
Bumped version number to 0.9
Merge pull request #67 from binford2k/wip/supplemental_materials

Wip/supplemental materials