Add more cached server info functions:

* server-radians-per-sample
* server-control-dur
* server-control-rate
* server-sample-dur
Reserve control-bus 0 as a precautionary measure.

Many synthdefs with control-bus args use id 0 as the default value. If
these synths are triggered without passing a specific bus id as a param
then the best that can happen is that the synth behaves incorrectly as
it's reading from bus 0. However, the worst situation is when the synth
writes to bus 0 - in this case if bus 0 is already assigned for use, 
then the bus will be clobbered with data from the synth causing other
synths to potentially misbehave too.

By reserving bus 0, no allocated control-bus will have this id. 
Therefore, accidentally writing to this bus will not have any negative
impact on other correctly executing synths.
Breaking change: Fix and improve control bus set and get functions:

* Fix blatant bug in control-bus-set-range! w.r.t. OSC API
* Remove start and len args from control-bus-set-range!
* Add offset params to allow offsets into multi-channel control buses
* Throw exceptions when invalid offsets are supplied
* Improve docstrings
* Set fns now return the list of vals set
Add SC-MAX-FLOAT-VAL - the maximum whole number that can be represented 
with scsynth's floats due to precision constraints: 2**24.
Modify default dependency satisfaction timeout to 20s

Also, correctly print out number of seconds, not ms!
Store a simple history log of dependency updates for debugging purposes.
Fix regression introduced in #c3041 and auto-allocate audio-busses ids
that are already associated with hardware io. Don't use naive strategy
of allocating AUDIO-BUS-RESERVE-COUNT busses (previously 50!!) but 
instead aut-allocate the correct number of busses for the given hw.
Fix dependency graph to handle new ha-audio-bus-reserved dependency.
It's probably not ever sensible to reset busses when server is rebooted.
Given that they're coordinated ids, they are still good to go...
fix ugen docstring
Wrap all calls to defrecord within defonce blocks.

When a defrecord form is re-evaluated, it creates a new Java class for
the record which is not .equal to the previous record, even if the
content of the defrecord form is unchanged. This can cause strange 
behaviour when instances of the old record fail to be recognised as 
instances of the new record. Guarding defrecord forms from re-evaluation
mitigates this issue.
Breaking change - control-bus-get may now return a sequence of vals.

Modify control-bus-get to return multiple vals when getting a multi-channel
control bus. If passed a numeric index, functionality remains unchanged.

Add new function control-but-get-channel which will only ever return a
single value.
New function - control-bus-fill!

Fill a sequence of control bus values with a specific value. Useful for
resetting control busses or for setting defaults.
Add article written for PragPub December 2013 with kind permission from
the publishers.
New Overtone band!
Merge pull request #273 from josephwilk/repl-electric

New Overtone band!
Introduce a purely internal server clock with control-rate resolution.

** Highly experimental and subject to change/removal **

Clock uses a two-channel bus to measure ticks at control-rate. First 
channel is of range 0 -> 2^24 (the max resolution of the server) and 
on rollover, the second channel is incremented.

Potentially useful for measuring/managing time within synths. 
Let's see...

Introduces new functions:

* server-clock-n-ticks
* server-clock-uptime
* server-clock-time
* server-clock-drift

A new group (at the beginning of them all):

* foundation-timing-group

And a two-channel global clock bus:

* server-clock-b
Rename server-clock-tick-b to server-clock-b
improve docstrings for server sync functions
Re-order clock bus channels - now [small-tick big-tick]