Added API document.
Merge pull request #266 from bac/api-doc

Add API doc

API doc converted from Google docs, stripped of discussion, and formatted as mark down.

Some light editing was done when the text seemed obviously to be in error.  Those are marked like ==changed==.  Any section with == formatting is a comment to the reviewer to check for accuracy against the original document.