Utilities updates

Allows the helper methods that perform system calls to be stubbed for
all specs in the spec_helper.
initial vagrant box setup
add root path option to Archive (closes #300)
allow logger warnings to be ignored
establish exit status codes (closes #422)

When performing triggers:
  exit 0: all triggers succeeded without warnings
  exit 1: all triggers succeeded, but some had warnings
  exit 2: all triggers processed, but some failed
  exit 3: a fatal exception caused backup to exit

When `--check` is used:
  exit 0: success
  exit 1: failure
Add support for SMTP with SSL.

Fastmail requires SMTP to use SSL but not STARTTLS.  This change enables
ones to turn on SSL without automatically starting TLS.

Here are some relevant links:

http://blog.fastmail.fm/2012/05/21/enforcing-ssltls-encryption-of-all-connections/
https://www.fastmail.fm/docs/encryption.html#ot
use a single `encryption` option to specify STARTTLS or SSL/TLS
add Notifier::Mail#encryption setting (closes #423)

Allows SMTP to be configured to use STARTTLS or directly use a SSL/TLS
connection. Deprecates Notifier::Mail#enable_starttls_auto.
Syncer::RSync Updates to support rsync daemon use

Adds 3 modes of operation:

- :ssh (default)
  Connects to the remote via SSH, without the use of a daemon.
- :ssh_daemon
  Connects via SSH, then to a single-use daemon spawned on the remote.
  This allows the use of certain daemon features while transferring data
  over a secure connection.
- :rsync_daemon
  Uses a direct TCP connection to an rsync daemon.
add ssh to Utilities
add optional syncer_id; log started/finished
Storage::RSync Updates to support rsync daemon use

Adds 3 modes of remote operation:

- :ssh (default)
  Connects to the remote via SSH, without the use of a daemon.
- :ssh_daemon
  Connects via SSH, then to a single-use daemon spawned on the remote.
  This allows the use of certain daemon features while transferring data
  over a secure connection.
- :rsync_daemon
  Uses a direct TCP connection to an rsync daemon.

Operation will be local if no `host` is specified.
misc acceptance tests updates

- checking the logger for warnings/errors is no longer neccessary now
  that `backup perform` will exit() if warnings/errors exist for any
  jobs performed.

- allow Package to find the trigger's final package file(s) anywhere
  within the BackupSpec::LOCAL_STORAGE_PATH.
Syncer::RSync acceptance specs
Storage::RSync acceptance specs
Release v3.2.0
return a mutable copy from utility() path
Database::Base updates

Adds an optional #database_id for all Databases that may be specified
when defining a database on a Model. e.g. database MySQL, :my_id do |db|
When only one instance of a Database class is defined on a Model,
the #database_id is optional. Otherwise, it is required and one will be
auto-generated if not provided and a warning will be logged.

Changes the #dump_path for all databases from
`<tmp>/<trigger>/databases/<class_name>` to `<tmp>/<trigger>/databases`

Defines the #dump_filename all databases will use for their dump file.
This will use the class name and the new #database_id to separate
multiple dumps using the same Database class, or may simply be used to
further identify the dump file.
e.g. `<tmp>/<trigger>/databases/MySQL-my_id.sql`

Also includes some shared examples to DRY up the specs.
Database::MongoDB updates

- Changes for the new #dump_path
  The dump file will now exist within the final backup package as
    `<trigger>/databases/MongoDB[-<database_id>].tar[.gz]`
- Dumped files are now tar archived, with or without a compressor
- Adds a new #oplog option
- Profiling is now disabled if #lock is used
Database::MySQL updates

- Changes for the new #dump_path
  The dump file will now exist within the final backup package as
  `<trigger>/databases/MySQL[-<database_id>].sql[.gz]`