Documentation refactored by Paul A. Bristow using Quickbook, Doxygen and
Rvalue references emulation added by Antony Polukhin using Boost.Move.
Added methods erase_begin(size_type) and erase_end(size_type) with constant
complexity for such types of stored elements which do not need an explicit
destruction e.g. int or double.
Similarly changed implementation of the clear() method and the destructor
so their complexity is now constant for such types of stored elements which
do not require an explicit destruction (the complexity for other types
*Added new methods is_linearized() and rotate(const_iterator).
Fixed bugs: #1987
Patch to make circular_buffer.hpp #includes absolute. #1852
Copy constructor does not copy capacity.
Changed behaviour of the circular_buffer(const allocator_type&) constructor.
Since this version the constructor does not allocate any memory and both
capacity and size are set to zero.
Fixed bug: #1919
Default constructed circular buffer throws std::bad_alloc.