Added a test suite and fixed a number of bugs

* Added a `$.jCanvas.clearCache()` method, allowing developers to manually clear the jCanvas internal cache
* Fixed a bug in which the object passed to an event callback may not have been a reference to the actual layer
* Fixed a bug which caused an event callback to fire recursively if it contained a call to the `drawLayers()` method
* Fixed a bug in which the `getLayer()` and `getLayerGroup()` methods would throw an error for an empty jQuery collection
* Fixed a bug in which the `removeLayerGroup()` method did not trigger the `remove` event
* Fixed a critical bug with the `delayLayerGroup()` method
* Fixed a bug with the value of the `$.support.canvas` property