Added keys() method to MO5.Map.
Added reverse() method to MO5.Queue.
Made MO5.Animation.prototype.addStep() chainable.
Removed old properties of MO5, changed bus:
- Instead of using MO5.bus, the MO5 object is now a bus itself.
Changed Canvas to use layers, added mouse/click detection:
- MO5.Canvas now uses MO5.Layer to change the order in which
  objects are drawn.
- Added new objectAtOffset() and objectsAtOffset() methods to
  MO5.Canvas and MO5.Layer.
- Added isAtOffset() method to MO5.CanvasObject. Returns true when
  the object is located at the supplied x and y coordinates.
- Re-factored draw() function of MO5.Canvas to be private -
  use loop() instead.
Changed MO5.canvas.Rectangle to use the new drawing mechanism.
Changed MO5.canvas.Group interface to be chainable,
changed setProperty() method name to applyProperty()
because it could be confused with the new MO5.Object
property mechanism and shadow the setProperty() method.
Changed MO5.canvas.Rain to use new drawing mechanism.