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`.