Fix ArrayList insert

Shifting elements up didn't actually switch the numbers or account for the
new size. This is fixed.
ArrayListTest.java: Add tests and fix

Fix: AssertEquals previously had expected and actual args switched.
Added more tests.
Add Stack ADT
Add LinkedList
Add Queue ADT
Add Tree interface, BTree node, BST