The shared state in every async_io_op was a shared_ptr, now it is the
underlying shared_future. Eliminated copies of shared_ptr, now we always
use the shared_future in enqueued_task directly. This reduced regression to 18%.
Moved some stuff out of the TSX lock to try and improve speed.
Removed the second TSX lock from complete_async_op(). This eliminated the regression and actually added 2% to the v1.1 engine.
Removed the second TSX lock from chain_async_op(). This added a further 10%
over the v1.1 engine, so we are now 12% faster which is about right given
the v1.2 engine removed 15% of code.
Removed the second TSX lock from chain_async_op(). This added a further 10%
over the v1.1 engine, so we are now 12% faster which is about right given
the v1.2 engine removed 15% of code.

Added nested TSX transaction support.
Merge pull request #54 from BoostGSoC13/remove_shared_shared_future

Remove shared shared future