Add option for dynamic modules

Especially handy in a multi-tenancy setup where each tenant might not want the same modules and keys.
Add Segment.io module

https://segment.io
Support loading module configurations from hash or proc
Update README to reflect changes

and selflessly add myself to the list of contributors.
Merge pull request #67 from dipth/dynamic_modules

Add option for dynamic modules
Add segment.io to list of supported services in readme
Merge branch 'refs/heads/master' into segment_io
Merge pull request #68 from dipth/segment_io

Add Segment.io module
Mixpanel: track page views as a single event, and allow optionally disabling of page view tracking

This change breaks compatibility for page view tracking via Mixpanel.

Previously, each page view was logged as a distinct event, with the URL as the name of
the event. This can result in many events, if you track many different URLs.

As of this commit the Mixpanel module logs each page view as an instance of the "page viewed" event.

This change confirms with a recommendation in the Mixpanel docs. See here:
  https://mixpanel.com/docs/getting-started/events-vs-page-views

To revert to the old behavior, use track(url, event: url) to specify the URL as the event name.

To disable page view tracking altogether in Mixpanel, initialize analytical with a { track: false }
option for the mixpanel module.

Lastly, the method signature for #track in this module now matches the method signature used elsewhere in the analytical gem.
Add support for the Mixpanel "alias" function

A call to analytical.alias_identity will now work for Mixpanel. Usage is slightly different than the already-existing KissMetrics implementation as the first parameter is ignored.

  analytical.alias_identity(nil, "the new identity")

The queueing of javascript commands is modified in two important ways:
1. "alias" is always added to the head of the queue rather than being appended.
2. "identify" is ignored (not queued) when "alias" is already at the head of the queue.

This behavior conforms with Mixpanel's recommended usage of alias and identify.
See https://mixpanel.com/docs/integration-libraries/using-mixpanel-alias.
Fix spec break caused by varying order of key/value pairs in analytical's result string
Merge pull request #70 from oshoma/master2

Mixpanel: track page views as a single event, and allow optionally disabling of page view tracking
update hubspot to use async javascript.
Merge pull request #66 from PracticallyGreen/hubspot-async

update hubspot to use async javascript.
"Enhanced Link Attribution" in google analytics

* Added the boolean configuration option: enhanced_link_attribution
  that adds code to enable that google analytics functionality as
  explained in the following article:
  https://support.google.com/analytics/answer/2558867?hl=en
Merge pull request #71 from carwow/master

Enhanced Link Attribution plugin in Google Analytics
Added support to pass in whitelist to analytical_is_robot?
Merge pull request #72 from npalrecha/configurable_whitelist

Add support to pass in whitelist to analytical_is_robot?
Add Mixpanel#person and Mixpanel#revenue methods
Fix track config for Mixpanel