Fixed issues cause by strict aliasing

Fixed a reference cast from size_t& to uint16_t& that
broke in a 32-bit build with O2/O3.
Fixed warning in perf
Join Session uv thread via SessionCloseFuture

fixes a thread resource leak if session objects are cycled.
Fixed issue with future callbacks

uv_queue_work() was being called to run on the Session loop
from an IO worker thread.  uv_queue_work() is NOT threadsafe
and this caused many issues. The fix uses the IO worker loop
which is where the callbacks are also called.
Session close cleanup improvements

Make thread safe
Override timed wait
close_future_ no longer allowed to be null
Wait in SessionCloseFuture dtor
Don't reference count close future

Fixes a leak that occurred because the close_future dtor would be run from on_after_run,
causing the session thread to join itself.
Timed wait can't return is_set if it timedout
Using 'long long' for 64-bit all the way through
Fixed allocator, not inherting std::alloc anymore
string.h header in common.hpp for memcpy
Merge pull request #52 from datastax/CPP-142

CPP-142 Fixed future callback crash under load
Merge pull request #50 from datastax/CPP-137

CPP-137 Cleanup Session Thread
c++0x not recognized on < GCC 4.2
Merge pull request #53 from datastax/CPP-131

CPP-131 64-bit type compilation issues
gitignore adjustments
Type in fixed vector and compiler fix for Windows
Add options to control the cmake process, to make it easier to include from a
parent cmake project.

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Update 'simple' example
Fixed include barrier
Merge branch 'fixed_vector' into updated_example