Change configuration lifecycle

It's a bit unsatisfactory, but the gist is that if you pass in a ConfigurationLoader implementation to run(String[] args, ConfigurationLoader), that ConfigurationLoader will be used to create the Configuration before initialize is called (it also stuffs said Configuration into the Bootstrap object that gets passed around.)

Comment liberally; I keep thinking there should be a better way to do this, but I tried to minimize dropwizard changes just for sanity's sake.