Effectively a rewrite/refactor of PImage. PImage's are now backed by a (non-rendered) canvas. Greater coverage of the PImage api.

PImages now use a backing canvas as their primary image representation, This change allows for more flexible manipulation of PImages,
and most of the PImage api is now implemented. Organizationally, the global drawing functions that handle drawing images were also
moved to the image.js file. The filter operation is still not implemented, and the mask function is not complete as per the processing's
original spec (though it supports similar functionality). The save functionality also does not support naming the downloaded file and probably
bears articulating out how we want this to work in the context of the web. It also only supports jpg and png formats.

One thing that has been removed at the moment is preloadImage(). I couldn't quite figure out how that was supposed to work
or if we want to keep it around.

I've added some examples in examples/pimage, they appear part way between a test suite and a set of user facing examples and could
probably be cleaned up in future.
Pass updated jshint validation.
merging pimage
Merge branch 'master' of github.com:lmccart/p5.js