sync_queue: Stop closing on throw in certain functions.

This broke documented exception safety contracts.
Also prepares for move_if_noexcept to be added to Boost.Move which is
necessary for the strong guarantee in some functions.
sync_bounded_queue: Prepare functions for boost::move_if_noexcept
sync_bounded_queue: Remove close on throw behaviour