Allow extending EndpointFactory to create other guys

Summary:
Need more than just Base, and this seems a bit easier to understand for
me. Following up on comments on D1660. Thoughts?

Test Plan: experimentally using it in the API.

Reviewers: Mihai, steph

Reviewed By: Mihai

Differential Revision: http://phabricator.palinka.me/D1750