Remove implementation details from API

Readded some of the API changes that weren't hand-picked into https://github.com/boundsj/ObjectiveDDP/commit/e093a93f86c6ea6c5220b849eeaa979d677582f8 from https://github.com/lookback/ObjectiveDDP/commit/48f90e9e17ff15d94ef3b52c762b5b9eb3eb1af5 . Cleaned up a lot of public API.