requirejs compatibility (amdefine for node compat)

Whether you're using standard node require(), requirejs on the server, or requirejs in the browser, these changes will allow you to use jugglingdb.

This involves wrapping all files in a define() call, where the first parameter is an array of dependencies, and the second parameter is a function which takes as its arguments those dependencies.

the 'amdefine' node module is used to allow these same files to used by node's require. They behave just as they did before. 

The only primary difference is that dynamic require calls in the middle of the file no longer work. So, using new Schema(<adapter name>, options) no longer works. You'll need to pass in your desired adapter after requiring it yourself.

The only adapter converted is http. That leaves cradle, memory, neo4j and riak to convert to requirejs compat.
removing end-of-line whitespace
http.all - encodeURIComponent for query parameter

Tried using this method with a like call - { like: '%string%' } and things fell apart. A raw JSON.stringify() call on that object will generate illegal characters. Now we encodeURIComponent on the result of that JSON.stringify().
http - implement destroy()

Delete didn't do anything before. Now it deletes.

Deletion of the model from the cache is still commented out, since no other code adds to the cache at the moment.
http - postProcess() to make Date objects

JSON has this unfortunate inability to handle Date objects. So when you get an object that had dates before, they're now strings. But jugglingdb knows the schema of objects in question, so it can do something about this!

installPostProcessor() is called for a model on initial setup - it looks for all fields with the type Date, and creates a postProcess() method for that model which turns all of those strings into dates.

We call postProcess() with the results of find, all, and save/update. :0)