Ensure invalid/non-implemented methods return 405

* Fix existing 405 exception by setting allow methods
* Add additional check to see if the method is implemented
Post revisions: updated posts api to create a new revision on every change

* Only make post slug unique for type 'report', since revisions might
  have duplicate slugs
* Refactor posts API to share code between POST and PUT
* Allow 'translation' post type
* Create 2nd most with type "revision" if anything changes when submitting
  a post.
Adding /posts/:id/revisions API
Fix api.posts.feature test to match changes
Add tests to ensure updating post creates a new revision

* Adds 2 tests:
  first hits /posts/99, second checks revision count increased
* TODO: work out how to combine this/make them indendent
Add the basics of translations API /posts/:post_id/translations/:id
Simplify Post::form_exists check and add Group::form_exists check
Throw 404 when parent post doesn't exist and add test for such.
Make post urls using translation / revision API as appropriate
Start on Many to many form attributes #21

* I've made attribute key unique
* Moved /forms/:id/attributes/:id to /forms/attributes/:id
* Added join tables (though think maybe I only need the form_groups one)
  * forms_form_attributes
  * form_groups_form_attributes
* You can only create attributes with a form + group - since orphan attributes aren't very useful.
* Need to work out what the API call would be for adding an existing attribute to a form group..
* Not too many issues, but more joins required.
Many to Many form attributes #21

* Move /form/attributes to /attributes
* Update /form/:id/groups/:id/attributes
  * POST can now add existing attributes
  * DELETE remove attribute from the group, doesn't delete it permanently
  * GET /form/:id/groups/:id/attributes/:id now works
* Remove forms_form_attributes table
  join through form_groups_form_attributes instead
* Split group attributes api calls into seperate controll
* Split group attributes tests into seperate feature
Add /posts/:id/translations/:locale route to accessing translations

Currently reproduces too much code from Posts controller. Need to refactor
for reuse.

Adds test for locale based url
Fix orphan revisions/translations after a post is deleted
Stop posts API returning revisions or translations

Also adding tests to confirm this
Remove core kohana modules - should be submodules
Adding core kohana modules back as submodules
Adding .travis.yml and composer.json

Copy composer.json from oauth branch
Fixing case on class requires
Fix case of model names in FeatureContext and PHPUnit tests
Porting PHP 5.4 Log_Writer fixes

Porting the fix from here: https://github.com/kohana/core/pull/338