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
adding some docs about running tests and adding tests
minor comment tweak
Merge remote-tracking branch 'upstream/master'