Module loader now loads non-module files also:

- Changed MO5() to load non-module files via AJAX, when
  the module "name" begins with "ajax:" followed by a URL.
  The XMLHttpRequest object used for the request will be
  given to the callback depending on it no matter whether
  the request failed or succeeded. You need to check that
  for yourself!

- Changed MO5.ajax module to be a simple wrapper again and
  added the ajax function to MO5.js file so that it is available
  as MO5.ajax globally. This was necessary because MO5() now
  needs AJAX functionality again and we don't want to
  duplicate any code.
Added MO5 Script standard library, commented out debug logs:

- Added an MO5 Script standard library file written in MO5 Script.
  It will automatically be loaded and linked in to the Interpreter
  before executing any other code. The library right now contains
  only the "when" macro, but is expected to grow in the future.

- Commented out console.log calls used for debugging, but leaving
  them there for the time being because the script infrastructure
  is pretty alpha still.
Added macro progn to the MO5 Script standard lib;
not sure if that's such a good name for the purpose,
though. It will probably change later on...
Various changes.
Various changes:
- Added list mutators append! and prepend!
- Added a file name to errors.
- Added progn as a special form - it doesn't work as a macro.
- Changed when to use progn so that (define)s work inside its body.
Fixed eval and macros when and unless.
Changed MO5 script to use pairs (cons cells) instead of arrays.
Various improvements regarding the porting to pairs.
Changed when and unless macros.
Various changes:
- Added new files containing script error constructors
- Added a module with a function for escaping HTML special chars
- Added a (not-yet-functional) breakpoint API to the Interpreter
- Fixed some more bugs in the special forms
- Changed script errors to carry script file names
Various script improvements:
- Fixed: define didn't convert procedure arguments to proper lambda form
- Added some descriptions to procedures
First attempt at optimizing tail calls.
Fixed: The top-level script expressions were handled like a list
but they shouldn't have been. This led to unexpected results.
Added a % function to the global scope and removed debug-prints.
Changed script interpreter to continuation-passing style.
Fixed: Used wrong parent context in lambda calls which made
recursion awfully slow.
Fixed: Accidentaly used unshift instead of shift on an array. This
resulted in progn returning the number of expressions to be eval'd
instead of actually executing them.
Added missing "console" to MO5.js globals comment for JSHint.
Merge remote-tracking branch 'origin/f-script' into develop
Added a check to module loader for whether a module file
contains a module. If it doesn't contain a module, a more
understandable error message is now thrown.