Removed unused variables.

Several unused variables have been removed to eliminate unused
code warnings in Eclipse.
Include project libraries on checkstyle classpath.

Checkstyle will fail if a method throws an exception type that is
located in a library that the project depends on.  The Checkstyle
configuration has been updated to include project libraries on its
runtime classpath.
Added a new PBF reader implementation.

The existing PBF reader is managed outside of Osmosis and used as
a third party library.  This library is used in several applications
and as a result it is difficult to experiment with optimisations.
A new reader task has been introduced with the aim of improving
performance.  This is currently exposed using the following task names.
--read-pbf2
--rp2
--read-pbf2-0.6
PBF marshalling classes use osmosis namespace.

The PBF marshalling classes have been moved into the Osmosis package
namespace.  This allows the existing libraries used the by the existing
PBF reader to exist on the same classpath without clashing.
PBF2 unit tests.

Added a simple unit test for the new PBF reader.
PBF2 DenseNodes support.

Added support for DenseNodes encoding in the PBF2 reader.
Basic logging for PBF2 implementation.
PBF blob object reading is separate from blob decoding.

Separating the CPU heavy blob decoding from the relatively lightweight
blob reading allows the decoding to be moved into separate threads if
desired.
PBF2 multi-threaded processing

The PBF2 implementation now supports multi-threaded processing.
The master thread handles splitting of the PBF stream into
blobs, the worker threads handle decoding of the blobs into
entities, and then the master thread sends the results to the
downstream sink.
Merge remote-tracking branch 'osm/master'
Merge branch 'pbf2'
PBF2 task uses "fast" suffix instead of 2.

The PBF2 task is now registered using the following names.
--rbf
--read-pbf-fast
--read-pbf-fast-0.6
Allow nodes without lat/lon attributes in osmChange <delete> blocks.

The osmChange files returned by the API and other tools like osmconvert
have been stripping out lat/lon attributes of <node> in <delete> blocks
for quite some time. This is conceptually OK since the coordinates are
of deleted nodes never used anyway. Osmosis, however, required lat/lon
attributes on all <node> elements.

This patch fixes this by teaching some context to NodeElementProcessor
which will now either throw an OsmosisRuntimeException (the default case)
or ignore the absence of the coordinates and set them to Double.NaN.

As a side effects, the error message shown when encountering a broken
XML file without lat/lon attributes in the required places, now got much
more comprehensible compared to the rather nondescript NPE thrown
previously.
Only write out the lat/lon attributes if they aren't set to Double.NaN.
Add some unit tests for the new lat/lon context differentiation.
Sync apidb codebase with production replication configuration

The version of Osmosis running on the planet server for minute
diffs has a couple of tweaks that have been applied manually.
These are:
* The list of database migrations is fully up to date.
* The replication code ignores redacted entities.
Updated list of changes based on recent developments.
Load replication database time with timezone.

The current timestamp is loaded from the database for the purposes of
replication.  The existing query was losing the timezone portion of the
time which caused issues if the db server and client server were
running in a different timezone.  This has been fixed to use the
clock_timestamp() function which includes timezone information.
Replication handles reverse clock skew

The replication server was pausing if the timestamps in state files went
backwards.  If the clock moved an hour, replication stopped for an hour.
This has been corrected by not defaulting the maximum time to server
time which may be less than the local time.
Revert "Replication handles reverse clock skew"

This reverts commit a2a9756c96e6ad22b56d8b8c83da3a648302da97.