Use CPA head for USER_ID support, closes item:654
Track by appConfig UUID, closes item:668
Rewrite tracking factory as service, closes item:744
Register listeners first in case appConfig fails

If `getCurrentAppConfig` fails, we can still track page views/exceptions, albeit
without being tied to a UUID (omit `catch` for the same reason).
Merge pull request #468 from tlvince/refactor/track-by-facility-uuid

Track by UUID, refactor tracking factory