Add a skeleton twitter aggregate manager.

Add a new plugin, space-twitter, containing a new
TwitterAggregateManager skeleton implementation.
Add ClutterRenderer skeleton.

Add skeleton for a ClutterRenderer, a new Simulation that renders to
screen using Clutter. The skeleton includes setup and teardown
code. This has to be careful to handle threading properly because
Clutter is "thread-aware" but not thread-safe. Because of this, a
separate clutter renderer thread is used and events need to be
injected into it. The shutdown process demonstrates this, using
clutter_threads_add_idle to request that the main loop terminate.

Also add a CMake module to find Clutter, which will be used for
rendering, incorporate the plugin into the CMakeLists.txt build
script, only building when Clutter is available, and a simple Emerson
class for interacting with the renderer.
Add command handling support to objects and their scripts.

Add a new command for object hosts that dispatches the command to a
particular object for handling. Objects can't do anything with these
directly. Instead, also add a function to the ObjectScript interface
that handles these requests. Add the necessary infrastructure to the
Emerson plugin for a script to register a callback which is invoked
for each of these requests. Currently, that interface assumes a
synchronous-style interface because it greatly simplifies the
implementation because the associated command state does not have to
be saved somewhere and no callback into native code needs to be
provided or handled.
Properly handle script with no registered command handler.
Add basic rectangles and text support for ClutterRenderer.

Add a bunch of Invokable interface methods to ClutterRenderer to
create and adjust the appearance of rectangles and text (labels).
Add ClutterRenderer commands to set stage size and background color.
Add location event handlers to Emerson.

Allow Emerson code to register event handlers on visibles for location
events, e.g. changes to position, velocity, orientation, mesh,
physics, etc. This works through JSPositionListeners, which use
JSVisibleData implementations to collect data. These, in turn, use
Proxies in one implementation and otherwise cannot be
updated. JSPositionListeners hold an optional set of callbacks, only
added when at least one storage slot is needed. When events are
received by the JSVisibleManager, these callbacks are triggered.

This also includes an important fix for JSVisibleStructs/visibles in
Emerson. The JSVisibleStruct now includes a reference count so that if
it is passed to multiple callbacks (e.g. prox added, prox removed,
visible events such as position, orientation, and mesh changes), it is
only deleted once *all* those handles are destroyed.
Setup aggregate processing in TwitterAggregateManager.

Setup tracking of aggregates and their relationships in the query
trees. Use this to dispatch processing of aggregates to worker
threads, looking only at aggregates that have been marked ready for
processing because they have no dirty children left.
Add a few simple tests for Transfer::URL.
Add query string and fragment ID support to Transfer::URL.
Properly handle stats for failed HTTP requests.

Fix HttpTransferHandler to not try to add to the bytesTransferred if
it hits an error. This was causing a crash because it tried to use the
response, but it wasn't a valid pointer in the case of failure.
Add basic aggregate processing to TwitterAggregateManager.

When aggregates are processed, download and parse all their children's
information. Use a cache to avoid downloading more than
necessary. Then, as a temporary type of aggregate, create a subset of
the tweet data, serialize the JSON, and upload it to a server
(currently using a simple HTTP request instead of the OAuth approach
because that makes the storage implementation simpler). Finally, with
the new data in place, construct and set a new URL for the aggregate,
allowing processing of parents to proceed.
Merge remote branch 'origin/master' into twitter
Merge remote branch 'origin/master' into twitter
Fix accidental removal of space-mesh plugin.

When adding the Twitter plugin, the space-mesh plugin was replaced
instead of copied and modified to work for space-twitter.
Fix add/removeListener in JSPresenceStruct.

Unlike JSVisibleStruct, JSPresenceStruct can sometimes be created
without a VisibleData to work with. Fix the add/removeListener calls
to handle this case.
Fix JSProxyVisibleData removeListener calls.

In the case of disable(), we need to make sure we have a valid proxy
before calling removeListener on it.
Add generic extra query_data for objects to be used in query processing.

* Update libprox and sirikata-protocol to versions which support this
  generic data.
* Update the internal migration protocol and migration code in the
  server to pass this data.
* Convert a lot of naming from zernike -> query_data to indicate the
  more generic version, even though in most places they are just
  strings so only the name has changed.
* Update session code and location services to accept, store, and make
  accessible this query data.
* Update prox and location updates to include query_data in their
  results when it makes sense, i.e. if the results may be passed to
  another query processor (server -> server results, server -> oh
  results).
Make extra query data loading in HostedObject generic.

Refactor the code for loading extra query data (e.g. Zernike
descriptors) so it is handled by a generic interface and the existing
code is moved into a plugin. The choice of what data/how to load it is
handled by an option, oh.query-data, and defaults to nothing.
Add Tweet bloom filters as extra query data.

Add libtwitter to provide shared Twitter utilities between space and
object host, currently only containing a bloom filter on tweet
terms. Add an object host query data lookup plugin that downloads
Tweet summary "meshes" and computes bloom filters on them. To do this,
update QueryDataLookupFactory to take an arguments string -- the bloom
filters need this to specify the number of buckets and hash functions.