add docs

This adds documentation using docco. It's ok, but nothing to write home about. There are some really irritating things about it that make me kind of want to look for an alternative.
It might be good to mention that these go in order top, right, bottom, left.