[WIP] First pass at API docs

@cmcavoy check this out and tell me what I'm missing (as I'm sure I'm missing stuff).