Modular split

This PR splits our initial `servant` package into:

- **servant**: types for defining APIs + `Server`
- **servant-client**: deriving (haskell) client functions
- **servant-docs**: docs generation
- **servant-jquery**: deriving (javascript) client functions

This enables us (and any future servant user) to only depend on the bits we need for a particular project. For example, you won't drag `lens` or `http-client` if you're just defining a server.

@jkarni @soenkehahn I'd appreciate it if you can give this a whirl before I merge, to make sure I haven't screwed up anything. This builds just fine and the tests pass.