Cleanup and test all the things (plus ditching Crockford)!

So, I'm in the process of cleaning up the noVNC code a bit and adding in some unit tests, and wanted to see what people thought.

The most controversial change in here is the switch from Crockford-style constructors to a more normal Javascript type of constructors that support prototypal inheritance.  Since this exposes private methods (just hinting to the "user" that they're private by prepending an underscore), it makes certain things *much* easier to unit test (this is less visible with the current patches, but will become much more apparent once I push the RFB change).

**NOTE:** this change set is not yet complete -- I'm still working on include/rfb.js (which is very large).  I just wanted to see if people had any comments so far.

**SECOND NOTE:** The current revision of this patch set includes a different WIP involving NOTUNNEL support for Tight auth.  Please ignore this for the moment.