Allow directive's require to be passed an object instead of an array

so instead of ['^country', '^state'], you can now use:
require : { countryCtrl: '^country', stateCtrl: '^state'}

and then in the link function:
//much better syntax than relying on array locations
 link    : function (scope, element, attrs, ctrls) {
                ctrls.countryCtrl.makeAnnouncement('from city');
                ctrls.stateCtrl.makeLaw('Jump higher!');
            }