Testing: Add listeners to DropwizardAppRule

This PR adds the ability for tests using **DropwizardAppRule** to hook the **Application** lifecycle.  It additionally includes a convenience method to add **Managed** objects to the lifecycle.

```java
@ClassRule
public static final DropwizardAppRule<TestConfiguration> RULE =
    new DropwizardAppRule<TestConfiguration>(MyApp.class, resourceFilePath("my-app-config.yaml"))
            .manage(new MyTestManagedObject());
```

There are many cases where tests need to add **Managed** objects to the application lifecycle and execute code in the application **onRun** method.  For example, many of our services use an ActiveMQ bundle which handles connections to a remote ActiveMQ server.  When testing these services we want to standup a local broker and override the config to use this local broker.  The changes in this PR are what make that possible.