Added BubbleSort()

-Implemented a simple version of bubble sort
-Improved print to use Iterator and Begin() / End()
Fixed Erase( iterator, iterator )

-Now uses return value of erase instead of iterator++
Added missing exercises

-Added exercise 3.4 to 3.6
Added BinarySearchTreee

Features
-Insertion
-Find min / max
-Find if x is in the tree
-Printing level order
Updated BinarySearchTree

-Added new functions in both iterative and recursive versios
Updated PrintTree_LevelOrder

-Fixed so that it works for any trees, regardless of wether it's
balanced or not
-Will not print extra spaces for empty elements
-This is the debug version with lots of uneeded output
Cleaned up PrintTree_LevelOrder

-Added comments to better explain what's going on
-Removed V2
-Removed debug output
-Added the previous commit separately because I wanted a debug version
to go back to