addition of developer documentation

NOT READY FOR MERGE. 

Still working through this, but done for the night. If people want to start adding comments, that's fine. I'll be back on it first thing in the morning.

Feedback will be useful for figuring out if this is moving in a direction that the devs are happy with.