Renamed some files. Removed lighten and darken.

Renamed Colors.js to ColorPack.js and Colvolution.js to ConvolvePack.js.
Also removed convolution based 'lighten' and 'darken' (from the code
and the tests).
Made convolutions tileable, added test for tweening hue shift.
Made convolution filters tweenable.

Unsharp mask, soft blur, sharpen, emboss, edge detect are now "tweenable";
however, I think I need to tweak the convolution matricies. At 0 there
should be no effect applied which corresponds to a matrix with just a
`1` in the middle (ie [...1...]). If the `filterAmount` is small then
the matrix is all near 0's causing the image to 'flash black'. If I always
add a 1 in the middle then the images become too bright...
Cleaned convolve pack, separated filter tests.

I removed the ability to do a convolution with a 1D matrix because I was
using all 2D matrices. I also cleaned up some unused variables and filters.

I took the entire group of tests dealing with image filters and put them
into `filterTests.html` and `filterTests.js`. I removed them from
`visualTests.js`.
Improved performance of convolution filters.

Previously, I would work with a regular array and compute/store/copy
to/from that array. It should be faster to create an imageData object,
create the convolution result in that object and finally:
`context.putImageData(result)`.
draw events no longer bubble.  It was causing too much of a performance hit, and didn't provide a whole lot of value.  Now, only layers fire draw events
started setting up new caching system
implemented _getCache() method which every getter will use to try and get/set cached attrs
reworked _getCache implementation
visible attr is now cacheable
absolute transforms are now cached
reworked caching system
now caching absolute opacity
caching system now relies on attr change events to clear the appropriate cache attrs
fixed drag and drop regression by busting the transform cache inside the clearTransform method
improved transform caching
updated tests
getVisible returns the visible attr.  isVisible takes ancestors into account.  getListening returns listening attr.  isListening takes ancestors into account.  added unit tests.
added new crop methods
moved factory logic out of Node.js to Factory.js