Refactoring and minimizing library

Converting to ARC, modern OBJ-C syntax, removing reverse method and
cleaning up interfaces, merging 3 classes into one file.