Massive rewrite done for a better api structure

Skeleton was born out of the need to define an API programatically with no external dependencies. The spec is modeled after the Swagger 2.0 spec and has a serializer specifically for swagger.

We are not bound to swagger by any means. If we choose to have a different serializer for another type of documentation format, we can do it with relatively ease.

/cc @supernullset
Couldn't the `swagger` endpoint be a structure JSON response type?

Might be weird, but being able to do:

```sh
curl 'https://api.example.com/foo/accounts' -X OPTIONS -H 'Accept: application/json+swagger'
```

At the end of the day it's not a _different_ `OPTIONS` resource, it's just a different _representation_ of the `OPTIONS` resource.

Just throwing this out in the wind.... :wind_chime: