Before and After Deploy Hooks, Stability Improvements

This request adds:
    - The options `before_deploy` and `after_deploy`  allow user to run arbitrary commands before and after the release is added and symlinked. These are supported by methods `onBeforeDeploy` and `onAfterDeploy`.
    - Dependency on `extend` module to merge default options with user options. Values listed as defaults in docs were not previously being applied.
    - Refactor of release directory creation command to allow first release to create the `releases` directory.