adding "vinyl scratch" samples and an example in the "Sound" submenu to check it out.
updating lowlag.js and letting it load the "soundmanager2" plugin - now IE10 works...

(turns out that IE10 is not working now with what's live at
livecodelab.net!)
adding MIT license to readme. Closes https://github.com/davidedc/livecodelab/issues/236
IE9 and browsers that don't support canvas now receive a nice message...

…note how this mechanism was in theory already 50% there - but actually
it wasn’t working at all because of missing parentheses “()” in “unless
isCanvasSupported”
adding some more samples. Not sure I like these ones.
minor edit - adding a [todo] to a comment
rendering is avoided when the user program issues no graphic commands
managed to triplicate a typo. Good shot! Fixing that.
string content doesn't go through transformation. closes https://github.com/davidedc/livecodelab/issues/238

    # strings shouldn't undergo any transformation
    # so we use replace all the strings with
    # references to a table, which we'll replace back
    # later with the original strings.
    # This code is adapted from Processing.js
    # (ref: "codeWoStrings" and "injectStrings")
minor: consolidating the numbering in the debug printouts
minor typo in comment
realised that the runtime was preventing a simple snippet of code from working, fixing that...

```
rotate peg
     rotate ball
```
wasn’t working because no multiple functions could be passed (and run)
as arguments. Now they can.
adding a simple way to run a range of tests instead of all of them
refining the avoidLastArgumentInvocationOverflowing mechanism so it works with the added examples
make a beautification step a little more generic so it captures more cases
now we can compose blocks under primitives, see example in details

we can do this now:

box
  peg

this is a relevant general case that we need to handle.
we can have if statements in brackets and they compose well, example in the details

flashing = <if random > 0.5 then scale 0>
rotating = <rotate>
flashing
▶ball
▶rotating box
rotate 2 peg 0.7
not the "if with functions" also behaves well when there are no functions passed to it as per example below

flashing = <if random < 0.5 then scale 0 else scale 2>
flashing // any command below is affected, matrix is not pushed/popped
ball
adding some piano chords samples
avoid to show two times the same image in the visual comparison tests