Do not pollute global scope + other minor fixes.

Original jshint report (for the base branch):

```
$ jshint jsml.js 
jsml.js: line 10, col 22, Missing semicolon.
jsml.js: line 24, col 6, Missing semicolon.
jsml.js: line 28, col 29, Missing semicolon.
jsml.js: line 30, col 57, Missing semicolon.
jsml.js: line 44, col 19, 'i' is already defined.
jsml.js: line 52, col 64, Missing semicolon.
jsml.js: line 64, col 30, '$i' is already defined.
jsml.js: line 64, col 38, '$l' is already defined.
jsml.js: line 70, col 30, Creating global 'for' variable. Should be 'for (var s ...'.
jsml.js: line 79, col 6, Missing semicolon.

10 errors
```
«var jsml» makes the code a little cleaner.