Simplifying the Endpoint API.

Introduced functional options to the Endpoint constructor. (see Dave Cheney's [post][post] and talk)

  [post]: http://dave.cheney.net/2014/10/17/functional-options-for-friendly-apis