Big ass refactor

* Moved common operations to shiva.http.Resource
* Simplified child classes
* Removed a lot of duplicated logic
* Added ALLOW_DELETE config (defaults to False)
  * Returns 405 for every DELETE action when set to `False`