Remove the requireExplicitBindings from each of the individual modules and provide control for this option from the Bootstrap.

The default behaviour is to require explicit bindings. If the user wishes to disable the requirement for explicit bindings, during
the creation of the injector the user must knowingly turn off the check (*). This allows Airlift to work with systems like
Sisu (http://eclipse.org/sisu) which currently do not have 100% explicit bindings.

  public static void main(String[] args) throws Exception {
    Bootstrap app = new Bootstrap(
        new NodeModule(),
        new DiscoveryModule(),
        new HttpServerModule(),
        new JsonModule(),
        new JaxrsModule(),
        new MBeanModule(),
        new JmxModule(),
        new JmxHttpModule(),
        new JmxHttpRpcModule(),
        new LogJmxModule(),
        new HttpEventModule(),
        new TraceTokenModule(),
        new MainModule(),
        new WireModule(new MavenBehaviourModule(), new SpaceModule(space(), scanning()))
    );

    try {
      Injector injector = app.strictConfig()
          .requireExplicitBindings(false) // (*)
          .initialize();
      injector.getInstance(Announcer.class).start();
    } catch (Throwable e) {
      log.error(e);
      System.exit(1);
    }
  }
Add merge support to CounterStat and DecayCounter

Add hack to reset value of counter stat to work around problems in Jmxutils