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

so many rules that make utterly no sense to me and work counter to my 40 years of programming experience.  I've read the arguments on either side this issue.  To categorically say that private methods should only be tested indirectly through their use by public methods leads to unnecessarily complicated tests.  In some case, I dare say that it would be impossible to thoroughly test the edge cases of through the public interface.  Certainly you could  not argue that the criteria for determining if a method is public or private is the need to be tested?

```
class Alpha(object):
    def _send_to_resource(self, item):
        try:
            resource = open('myresource')  # may be local in memory or external
        except ResourceFullError:
            resource = open('alternate_reasource')
        resource.send(item)
    
    def some_method(self, some_input):
        # .... lots of very expensive computation
        self._send_to_resource(item)
        # ....
```
how do you test ```_send_to_resource``` through the public API?  How do you figure out that ```alternate_reasource``` is misspelled by only using the public API?  The need to be tested shouldn't mean that ```_send_to_resource``` should be in the public API.  Just because it is private, doesn't mean that it is an implementation detail that shouldn't require testing as I've seen some argue.