Store the environment at startup and restore it before reexecing

This makes sure that pre-loaded code isn't able to change the
environment in ways that impact subsequent restarts of einhorn (for
instance by repointing bundler to look at a different Gemfile).

Fixes einhorn issue #7
Merge pull request #9 from ebroder/restore-env

Store the environment at startup and restore it before reexecing
Use bundler for tests
Fix typo in test context
Switch from JSON -> YAML for the command-socket protocol
Add rake as a development dependency
Update README
Have dump state as YAML rather than inspected string
Make einhornsh script-friendly

Closes #8
Change from EINHORN_FD -> EINHORN_SOCK_FD
Rename -b option to -g; nuke useless safety checks
Add bind option
Add support for configuring einhorn via environment variables

Closes: #4
worker.rb: Add interface for accessing sockets
Update docs and examples for environment variable interface
Allow re-signaling children processes
einhornsh: Handle non-hash responses
einhornsh: Parse the provided command-line
Add missing parens
Add a 'signal' command to let user send signals