Add a "spring start" command and use it internally to boot the server

This is kinda related to #89 in that it removes the ruby -e "..." line
from the backtrace, but it also seems cleaner in general.

Users don't really have any reason to run "spring start" manually since
it happens automatically when they try to run a command.
Stop using Mutex_m

It adds weird stuff to the backtrace, which is annoying, see #89.
Revert "Merge pull request #90 from rjackson/close_database_connections_before_forking"

This reverts commit d9869697bd18c8961f992c00882a6813a84fab27, reversing
changes made to c5913debf28a2657cc9d120cb5ccfc4e85c8ae66.

Explanation:

ActionDispatch::Reloader.prepare! ends up calling
ActiveRecord::Base.connection.clear_cache! which tries to get the
connection, and at least with a postgres database, raises an exception
because the connection has been closed.

We want to do the prepare! in the parent process so that autoloaded
constants are kept up to date. Otherwise the child process would have to
reload the files every time, even if they hadn't changes since the
previous run.

The easiest solution for now seems to be to revert this.