Add OHLocationUpdateListener interface to get all updates about objects in the OHLocationServiceCache.

The libprox interface for listeners only include updates about the
parameters used for query processing. This provides all updates
(e.g. including mesh) so we can use just the OHLocationServiceCache
generated by each server query to handle everything related to queries
against that server (i.e. as input to querying and, after an object
subscribes, as input for location updates).
Refactor ManualObjectQueryProcessor.

Split the server querying parts of ManualObjectQueryProcessor into
their own class. By separating this, we'll be able to add a separate
class for actually processing queries and have
ManualObjectQueryProcessor just manage their interaction.
Add swap and fix popAll in ThreadSafeQueueWithNotification.
Add query processing for ManualQueryProcessor.

Add ObjectQueryHandler for doing query processing locally based
on the output OHLocationServiceCache from server queries. Instantiate
one per server when queries are registered and have it deliver the
results. This gets enough pieces connected to get results back to the
querier, allowing a client to display the world.

Some issues still exist: location updates are not provided, updates to
queries are not yet handled, objects aren't loaded into the query
processor in the same structure they are received from the server (we
need parent information and a new way to add objects for that), and in
order to get these results we always fully refine the results provided
by the server.
Merge branch 'master' into manual-query
Add subscriptions and loc updates to manual query processor.

When reporting proximity results, make ManualObjectQueryProcessor
track subscriptions. On updates from the OHLocationServiceCache, use
these to generate loc updates and deliver them. With this change,
movements make it all the way through the system when using the manual
query processor.
Fix some cases where OHLocationServiceCache didn't track objects for long enough.

Add a simple kind of tracking that just increases/decreases the
refcount without returning an iterator -- the object properties still
need to be looked up by object identifier. Use this to cover periods
where we want to check for an object and check some of its properties
and be certain the object won't be removed between those operations.

The previous change also exposed an issue where if tracking stopped
while the object was still part of a result set we could lose it in
the cache. Add refcount increment/decrement on object addition/removal
so we are ensured the object won't be removed until it has both left
the result set and has no external tracking calls outstanding.
Merge remote branch 'origin/master' into manual-query

Conflicts:
	liboh/plugins/manual_query/ManualObjectQueryProcessor.cpp
	libproxyobject/include/sirikata/proxyobject/OrphanLocUpdateManager.hpp
Make LocUpdates transparently convert to local time.

Remove the *WithLocalTime methods from LocUpdate, instead adding
comments to note that LocUpdate methods should always return values
with local time. This is simpler for consumers of LocUpdates since
they don't have to do the conversion and isolates all time conversion
code to be as close to the reception of the messages as possible.

This change also fixes incorrect behavior with manual queries where
time conversion was being performed twice, resulting in incorrect
locations for moving objects.

Finally, since this required that OrphanLocUpdateManager use the
ObjectHost to do the conversion, move that and
PresencePropertiesLocUpdate into liboh. This fixes some liboh includes
that were in libproxyobject.
Track and report epochs in ManualObjectQueryProcessor.

Add an epoch entry for objects in the OHLocationServiceCache and
expose it for reading, writing, and listener events. Use epochs
reported in location messages to populate these entries. Use the
triggered events to trigger location updates to queriers, only
including the epoch when the querier is the object itself.
Fix incorrect check for static objects.
Handle query updates in ManualObjectQueryProcessor.
Make ProxProtocolLocUpdate not do automatic time translation.

ProxProtocolLocUpdate is used in multiple places, including in
HostedObject where it isn't possible to tell whether times were in
local time (e.g. coming from a local query) or remote (e.g. passed
directly from a server-side query).

Change the semantics of ProxProtocolLocUpdate to assume the input is
always in local time. In the two object query processors, just do the
translation from server time in the two places proximity results are
received from the server. Results from local queries don't require
changes since they are already in local time.
Make static/dynamic split work properly in manual query handler in space.

The commits

fcd82406e9916e15ec790c7a24388727d913fdf4
939712472f959d59d49bfe1f68e39a4cbceb103d
9e9a9905d29107affc8f23fb233ddcf6fd183351

add delay for objects becoming static, fixed an ordering bug with
additions/removals due to swaps, and marked removals due to swapping
trees transient. This applies these changes to the manual query
processor, moving as much as possible into their shared base class and
replicating the rest of the changes.
Forward transient removals through the OHLocationServiceCache.

Update prox for LocationUpdateListener interface that supports
indicating that removals (locationDisconnected) are temporary. Use
this when feeding results into the OHLocationServiceCache from queries
with the space server. The OHLocationServiceCache passes this along so
that removal events for local queries are tagged as transient instead
of permanent when the removal from the server was marked as
transient. Combined with the existing code in HostedObject for masking
quick removal/addition events, this provides masking when using manual
queries but still allows permanent removals to be processed
immediately.
Merge branch 'master' into manual-query

Conflicts:
	liboh/plugins/manual_query/ManualObjectQueryProcessor.cpp
	liboh/plugins/manual_query/ServerQueryHandler.cpp
Switch to json_spirit in liboh's manual query processor's parsing of object queries.
Fix incorrect EXPORT on OrphanLocUpdateManager.

When OrphanLocUpdateManager moved from libproxyobject to liboh, the
export didn't change. This only causes errors on Windows where the
export/import direction is specified instead of just visibility.
Merge branch 'master' into manual-query

Conflicts:
	externals/prox
	libspace/src/AggregateManager.cpp
Fix build issues in ManualProximity after merge.