PLAT-546 SnsApiWrapper, MockSnsApiWrapper, test for MocksnsApiWrapper
PLAT-545: include cstring so that strcpy is declared
Merge pull request #3 from datacratic/PLAT-545_missing-strcpy-decl

Plat 545 missing strcpy decl
PLAT-532: multiple fixes in multi download code:
added exception propagation from the http threads to the reader thread;
reduced the number of critical sections by using one RingBuffer per thread and computing the thread specific offsets based on the number of threads, the thread number and the number of loops performed;
commented the purpose of the member variables to improve the understandability of the code
PLAT-534 s3 library change to have less expensive when using getObjectInfo
Increased the source queue size for the MessageLoop.
Merge branch 'master' into PLAT-532_dl-concurrency-fixes
Launcher now properly waits 1 zookeeper
Merge branch 'master' into PLAT-532_dl-concurrency-fixes
PLAT-532: do not rethrow from the destructor
PLAT-532: further improvements to comments, cleanup and clarifications
Allow S3 bucket to register to be specified on command line (PLAT-553).

This allows for credentials that have no LIST BUCKETS privileges to be passed to S3.
Allow GC lock SharedGuard to be locked and unlocked independently of object creation or destruction (PLAT-554)

This makes the semantics like a std::unique_lock, which has RAII semantics but can also be
used more flexibly. Avoids the need to use a unique_ptr when more flexible locking is required.
Move functions out of header in REST request binding (TRIVIAL)

In order to reduce compile times, these functions are moved into the .cc file
Allow HTTP Rest Proxy to not throw exceptions and accept data chunk by chunk (PLAT-556)

When using this to watch (eg, etcd) it's difficult for debugging to have to catch exceptions, and we need to get data as it comes, not only once the connection is closed.
These changes allow for the HTTP Rest Proxy to be used in this context.
Merge pull request #93 from datacratic/trivial-rest_request_binding-static-functions

Move functions out of header in REST request binding (TRIVIAL)
Allow SFINAE version of getDefaultDescription for graceful degradation (PLAT-557)

This allows a value description to be obtained of a type, with a null pointer returned (rather than a compilation failure) if the type is unknown to the value description system.
We also allow default construction and destruction to be requested from the value description to allow owned values to be created (previously you could only manipulate values created elsewhere).
There are also type traits changes needed to work around missing traits in GCC 4.6.
Finally, the empty implementations of methods were replaced with pure abstract methods in ValueDescription, and implemented as empty in PureValueDescription. This makes it safer to implement a new ValueDescription as the compiler will catch missing methods.
Merge pull request #91 from datacratic/PLAT-554-SharedGuard-explicit-lock-unlock

Allow GC lock SharedGuard to be locked and unlocked independently of object creation or destruction
Fixed S3Api::Init() to work properly with credentials, environment and keys; make env have precedence over credentials (PLAT-553)
Merge pull request #95 from datacratic/PLAT-557-owned-optional-value-descriptions

PLAT-557 owned optional value descriptions