Add Phoenix.Endpoint

There are still many TODO's sprinkled throughout the code that need to be addressed before merge.
The transports config should be on the endpoint, imo