Added more documentation.

Added documentation to the header, updated the readme, and added
NSAsserts into the implementation.