Design, test, and build a BufferManager, and String class that uses the BufferManager. This implementation outperforms the C++ Standard Library String implementation on some basic memory usage tests by 33% for strings of size 100 up to > 10,000. Offers all the major string operations such as object creation, comparison, appending, inserting, replacing, erasing, searching and streaming.