Disables recursion in phoenix.start to fix #462.

Attempts to make `mix phoenix.start` play nice with non-phoenix sibling apps in umbrella projects.

As per discussion of issue #462 and suggestions on [Pull Request 490](https://github.com/phoenixframework/phoenix/pull/490), `phoeinx.start` now
* is nonrecursive
* takes an optional list of routers to start as an argument
* will defer to a default list of routers if no routers are supplied on the command line. The router list is provided by defining a `routers:` item in the project configuration in the mix file.
* only attempts to guess the router to start if neither command line args nor `routers:` are specified, and even then only in in non-umbrella projects.
We should be able to match on the `routers` directly and avoid the control flow dance. A couple `run` clauses can match and setup the `routers` value as needed, then we can pipe to another function that handles starting all or a single router.