Reorgainzed repo, added abstractions folder, updated readme, and cleaned up docs.

Reorgainzed repo, added abstractions folder, updated readme, and
cleaned up documenation comments.