Fixes Bug 1071538 - one app to rule them all 

In anticipation of having apps optimized for different end users, introduce the concept of application defaults.  This replaces the awkward configman syntax of having to change defaults with 'force=true'.  The best way to implement this is to refactor the socorro.app.generic_app hierachy to allow apps to have a 'get_application_defaults' method.  That method injects the new application default values into the configman value_source_list between the lowest level defaults and the configuration file. 

This makes it easy to also introduce the optional universal launcher for socorro apps.  
../scripts/socorro_app becomes an alternate way to launch any of the socorro applications.  Launching apps can look like this:

   ./scripts/socorro_app ProcessorApp --help
   ./scripts/socorro_app CollectorApp --port=8888

this should have no adverse effects on the existing method of launching apps directly. 

NOTE: this PR does not include CronTabber in the universal app launcher scheme.   That will require extra engineering effort to resolve some inconsistencies in CronTabber

Now that you bring it up I can't find concrete advice that lists the number of people for and against. I base my opinion on something I've picked up lots of other people have said. It's something you simply hear every now and then. Just like you hear people say you should write tests that cover all branches, write comments about "why" rather than "what", etc. And another common thing you hear is that if you use a third-party API and you call private methods you're basically not covered from changes whence public methods are "promised" to stick around. 

But it's something with opinions on both sides of the argument no doubt. If you don't mind it, that's perfectly fine with me. I'll make a mental note. 

I just pointed it out assuming you were on the same page as me. But you totally don't have to.