remove deprecated .rvmrc
use a state machine instead of regexp, to handle comments cleanly

Still need to do the same for function signatures, and it couldn't
hurt to refactor the state machine itself into a different class.

Closes #94
set path for jax-core and jax-engine
Merge branch 'master' of github.com:sinisterchipmunk/jax
Fix `rake` from project root by refactoring all gemfiles into ~/gemfiles

Run tests with e.g.

  BUNDLE_GEMFILE=`pwd`/gemfiles/rails-3.2 rake

I think using an absolute path to the Gemfile is required.

Closes #93
fix gemfiles
move TESTING to project root and update it
colorz
remove templates, these now live in jax-core
chain builtins more predictably
don't commit lock files, the paths will be different for everyone

also if jax can't be built with latest versions compatible with Gemfile
then we want to know about and address that
remove builtins from jax-core, they are now in jax-engine
remove redundant tests, make picking test less dependent upon canvas dimensions
make input devices more modular, decoupled them from `Jax.Context`

Removed some obsolete tests, refactored the `Jax.EventEmitter` API

Introduced dependency on jQuery -- can't justify reinventing the wheel
around events, DOM elements, etc. any longer
refactor `Jax.Input.Keyboard`
hopefully, optimize multiple events between frames

There's no point handling input faster than a frame can be drawn,
so try to overwrite events that occur between frames. This should
make apps that rely on offscreen draws (such as picking) much faster,
as they don't have to draw offscreen for stale events.
fix documentation
improve documentation around `Jax.Input`
try to reduce chances of `diffx`/`diffy` inaccuracy

by forcing a full frame between calculations of `diffx` and `diffy`,
we can at least ensure that e.g. a double `mousemove` event within a
single frame does not produce inaccurate `diffx` and `diffy` values
on the second event, which will replace the first as if it never
happened. This does not protect us from events of differring types,
such as if a `move` and `drag` both happen in the same frame -- but
collisions of this nature should be pretty rare.
fix mistake, caught by tests

yay for tests