Rewrite Client and extension.execute
Refactor client handler to manage serialization
Simplify Client call and handle_operation
Add BottleHandler, fix minor bugs

extension was calling partial incorrectly
BottleHandler takes care of serialization and delegating
 operations service side - ServiceHandler is the inverse of
 ClientHandler
added Service docstring
fix indentation in client.py
minor rename
Rewrite Service, TODO validation
Create  subclass with different bind criteria
Rework function binding for services
Be more opinionated about client handler

Folding handler logic back into client/service,
since the handler/serialization logic makes sense
at the invokation point (client.handle_operation) and
requires duplicating a bunch of state to compartmentalize
Flakes
Add endpoint field to description
Typo
Be more opinionated about service handler

Similar to the recent client rework, simplify
function binding and move handler into the class.
If there's ever a need, this can be split out in the future.
Factor out shared util
Remove six - now py3 only
Rework extension chaining
Fix ordering for partial use
Correct service serialization/extension event ordering
Update client to use chain
Split out chaining, clean up extension interface