Initial experimental version running under nodejs.

This experimentation mainly stems from the current lack of a good
eventmachine Mongo adapter that supports replica sets.

This currently lacks logging, but implements most other existing
features with a more flexible rate limiting implementation. The rate
limiting can now be arbitrarily granular and works on a sliding time
scale. This also implements a strategy for distributing the rate
limiting across data centers.
Tiny (probably useless) speed optimizations.
Initial implementation of logging into Elasticsearch.

This combines logs from HAProxy's syslog and the gatekeeper proxy, since
both have pros and cons.
Abstract the common proxy logging functionality a bit.

Also cleanup the log hashes in redis after successful indexing.
Refactor things so a cluster of node processes can be launched.
Fix race condition. Ensure mongo is connected before cleaning the db.
Rework configuration. Get rid of argv parsing for now.
Add app-specific default.json parsing.
Make elasticsearch connection configurable.
Some debug logging output for the log processor for now.
Add configuration setting for custom geoip data path.
Fix custom geoip data path setting.
Better elasticsearch setup and log a few additional items.
Add a script to migrate old log files.

Abstract some common log processing functionality.
Various updates and fixes for the migrate script and log processing.

Fix the geo field so it stores properly.
Allow a better fallback for useragent parsing.
Use the bulk indexing API so the migration script doesn't eat resources.
Don't analyze the IP address field.
Better handling of geocode details and user agent parsing.
Index city locations separately for map lookups.
Remove unused mapquest dependency.
Add user e-mail field to log entries.