Fix 'Error: invalid argument - 0.0' error when rrand arguments have range 0 (min == max)
whitespace fix
Don’t override default synth docstrings with empty strings!
clean up INSTALL
Hack in a larger audio-bus quota for non-RP systems:

* Need to consider a more generic ‘config’ based approach
* Still other magic numbers to remove
* Eases situation in commits:  #111, #120
Clarify Qt install process for OSX

When following the instructions, several users found that the Qt app
hung at the splash screen after compiling it themselves. This is due to
their installs not having a ruby binary in the right location, which is
hardcoded into the Qt app. This PR suggests a workaround in the way of
symlinking an appropriate Ruby into the correct location, and generally
tries to clear up the steps in INSTALL.md

The changes regarding `install_name_tool` are to prevent the following
error:

    ERROR: no file at "/usr/lib/libqscintilla2.11.dylib"

whilst running the `mac-build-app` script. This is because `macdeployqt`
gets confused unless the inner path of the qscintilla dylib is a full
path. More information about this error is written up in issue #123.
This PR fixes #123.
Tweak path in instructions
monkey=patch Array#sample and Array#shuffle to use TL rand generator:

* If no thread-local rand generator exists, just fall back to original
  implementation.
Adding changes and instructions to support building on Fedora
Merging upstream changes
Merge pull request #125 from xavriley/qt_install_fixes

Clarify Qt install process for OSX
Move log files into ~/.sonic-pi as opposed to /tmp/*

* Fixes issue where Sonic Pi was used by multiple accounts on
the same machine - whereby the /tmp files wouldn't be writable
when they already existed after being created by another account.

Fixes: #115
Add new class WrappingArray which wraps calls to [] over its size:

* Make chord inherit from WrappingArray
* Make scale inherit from WrappingArray

Chord and Scale are now therefore Arrays rather than things which sort
of acted a bit like arrays.
Breaking change - make *_i fns return integers rather than floats:

* Affects both rrand_i and rand_i
Don’t call .to_a on Scale, just return the scale object as is
Teach synth arg munger to pass the full args map to lambdas with arity 1

* Means you can now use the value of other args when computing the 
  current value.
* Warning: other args may not yet have been calculated and may also be 
  lambdas which means it may be possible to enter an infinite mutual 
  recursion hole if you try to call them and they try to call you…
Teach synth args to catch recursive loops:

* synth arg vals may be procs which may accept an arg which will be the
  current synth args.
* synth args hash is now monkey patched (on a per object basis) to call
  any procs vals when accessed via the [] method.
* hash also stores a trace of access so that cycles can be detected

THIS IS NOT THREADSAFE! *Only use in a single thread.*
Improve TB303 synth:

* Now supports separate cutoff ADSR envelope
* New args: cutoff_attack, cutoff_sustain, cutoff_decay, cutoff_release
  cutoff_min_slide, cutoff_attack_level, cutoff_sustain_level, 
  cutoff_env_curve
* cutoff ADSR values default to the equivalent values in the amp ADSR
  envelope
specify which markdown style we’re using in these docs
fix up docstrings