Fix null shutdown timeout in ExecutorServices

`ScheduledExecutorServiceBuilder` defines no default `shutdownTime` or
`shutdownUnit`. These are passed to `ExecutorServiceManager` which in
turn uses them verbatim on `ExecutorService#awaitTermination(long,
TimeUnit)`, potentially causing a `NullPointerException`.

Adding default values resolves this problem.
Provide Duration APIs as well as (long, TimeUnit)

Several components require settings a duration (for timeouts etc.) that
require a `long` and `TimeUnit` pair. Lets provide an API that accepts a
`Duration` instead, as it's often less cumbersome to work with,
especially when working with a `Configuration` that already provides the
value as a `Duration`.

Note: this adds `dropwizard-util` as a dependency of
`dropwizard-lifecycle`.
Merge pull request #328 from nicktelford/feature/duration-apis

Provide Duration APIs as well as (long, TimeUnit)
Merge pull request #327 from nicktelford/fix/null-shutdown-times

Fix null shutdown timeout in ExecutorServices
Commit to Duration in the executor builders.

Thanks, @nicktelford.
Merge remote-tracking branch 'upstream/master'