Refactoring API arguments

closes #2610, refs #2697

- destroy expects an object, rather than an id all the way down to the model layer
- all API methods take consistent arguments
- route params such as :id, :slug, and :key are passed as an option & used to perform reads, updates and deletes
- browse, read, destroy take options, edit and add take object and options
- HTTP posts api can find a post by slug
- Add API utils for checkData