Feature: untangle runner config

Currently the `Runner` contains the only definition of the `caller` attribute and the (crufty, detested) code for the builder of the `location` attribute (which is defined elsewhere). Its been bugging me for a while, and with the Runner being a singleton this is hindering support for multiple apps with independent configuration.

This Pr collects the `caller` and `location` attributes and with their builders into a single role. It could have been added to ConfigReader; but I'm hoping that as a separate role someone may get inspired to tackle cleaning it up further.

Next step was to sort out which of the existing default config items in the Runner were app specific (such as views or appdir) or are really global and apply to all apps. 

And little bit of cleanup resulted in separate apps being able to have separate configuration files. :dancers: 

Last two commits add a global trigger for every config option the runner supports (it was easy to implement) and an edge case for the `traces` setting where traces were not enabled if `ENV{DANCER_TRACES}` was set.