Disables recursion in phoenix.start to fix #462.

As per discussion of issue #462, phoenix.start now
* is nonrecursive
* takes a list of routers to start as an argument
* will only attempt to guess a router in non-umbrella project
* will defer to a default list of routers provided in the mixfile
Tidied up based on review suggestions
increase overview with an index

* add contribution section
Replace MyApp.Router.Helpers.url with MyApp.Endpoint.url
Merge pull request #528 from gjaldon/patch-1

Replace MyApp.Router.Helpers.url with MyApp.Endpoint.url
Merge pull request #522 from tonini/refine-readme

increase overview of readme
Ensure CodeReloader is removed when disabled
Bump version and changelog
Update CHANGELOG.md
Improve ranch errors for websockets
Merge pull request #530 from fishcakez/jf-new-errors

Improve ranch errors for websockets
Update start task to be endpoint compatible
Do not make phoenix.routes recursive too
Start endpoints in the application supervision tree
Fix the build