track OS, node & app version, updated docs & tests

As promised. This is crucial for debugging. Fixes https://github.com/yeoman/insight/issues/12. Note that tracking app version is sort of a hack using custom dimensions. Once we refactor from using GA web tracking to GA app tracking, we won't need it anymore. However we'll still need custom dimensions to track OS and node versions.

This should not break any currently deployed implementations, only adding new data.
I would recommend sending `undefined`. Because we use a path for tracking now. GA allows you to get data by "path levels". If you don't send anything, GA will insert the value `null` for `ga:pagePathLevel3` when querying for that path level, if there are other `ga:pagePathLevel3` dimensions tracked. However, imagine if you have a package with no version info at all, i.e. no `ga:pagePathLevel3`. If you query for `ga:pagePathLevel3` anyway, GA will return error saying no results found. It's better to enforce what data gets tracked than to have GA insert a value.

Below is what data looks like. 

![screen shot 2014-07-24 at 8 46 30 am](https://cloud.githubusercontent.com/assets/3760840/3690540/c0493af6-1349-11e4-8989-ab0a7aaeb91b.png)

But this may not matter once we move to GA app-based tracking instead of web-based tracking.