Fix for deploy duplicate restart.

Originally, deploy::environment triggered a restart.  Since the deploy lifecycle event triggers that recipe, it was getting called immediately after the reload, resulting in a reload failure.  Environment used some code borrowed from a separate section.  So, CnP laziness fail.  Its now rewritten so that all restart events (including the deploy resource for the application) use the same service resource for restarting through the notifies handler.  With this in place, the restart is saved until the very last step, ensuring everything is ready, and it also deduplicates automatically.  A secondary change that would have broken eventually: I was restarting the servers when the database was changed (hard restart), but I was doing it using a similarly fucked up mechanism, resulting in a weird restart when an app is first installed.  I generated a separate recipe deploy::database that now calls rails::configure (which used to contain the restart code).  The restart code now resides in deploy::database and subscribes to the change of either database.yml or memcached.yml.  This way, unless you call deploy::database, the restart will not occur.