Add Phoenix.Endpoint

There are still many TODO's sprinkled throughout the code that need to be addressed before merge.