Merge pull request #107 from vinnievg/master

Minor typos fixed in thread sync tutorial.
fix doc formatting by doing CGI escaping after doc/code separation phase
Adding support for note resolution by `degree`
More consistent argument ordering
* Ensure scale is valid.
* Version = 2.1.0
Check `degree` really, really works
Merge pull request #109 from josephwilk/degree

Adding support for note resolution by `degree`
Add function which replaces boiler plate code for creating a live loop
Experiment by making wait polymorphic - i.e. handles both sync and sleep
Pull in rouge lib for HTML syntax highlighting
Teach live_loop to auto cue its name on loop
Fix name of fn in error message
Add new experimental fn: after

* Allows for asynchronous absolute scheduling of a given block
* Takes a list of times and a block
* For each time, creates a new thread, sleeps for the time and calls block
* Block can accept 0, 1 or 2 args. 
  - 0 args: the block is just called
  - 1 arg: the block is called with the time as a param
  - 2 args: the block is called with the time and index of time in times as params
* Doesn’t cause the current thread to sync - therefore is entirely asynchronous

Example:

    live_loop :drums do
      after [0.125, 0.25, 0.75] do
        sample :drum_heavy_kick
      end
      sleep 1
    end
Don’t try and do any sleeping if sleep time is 0!