Generate C# tests from YAML using T4 templates

This pull request moves unit test from being data-driven at run-time to generating individual unit test methods from the YAML test cases at compile-time, using T4 text templates. The benefits are several fold:

- Each test case appears as its own
- When a test fails it can be easily identified, including statistics like passing vs. failing
- Using various runners, individual cases can be run and debugged
- Test cases can be timed individually, e.g. ReSharper's runner already does this

…and the following image/[report](https://rawgit.com/atifaziz/b13ce1512fd4434676c7/raw/8a49d61456a3548717016a08793f121b073b82c6/UAParser.Tests.html) will speak a thousand words:

![tests](https://cloud.githubusercontent.com/assets/20511/3107836/e7d23ede-e689-11e3-89e2-d796e30c588e.png)

The organization is as follows, which was done for performance & manageability reasons:

- All generated tests appear under the `UAParser.Tests.Generated` namespace
- Each YAML source document becomes a namespace
- Each family (be that user agent or OS) of tests becomes a class
- Each test case becomes a method with the method name created from expectations (family plus optional version components)
- The suffix of each test case method name is the line number of the source YAML document from which the method was generated, which can assist with cross-referencing

The only exception to the above is `test_device.yaml`, which was rather small so it has a simpler organization. All its test cases appear as methods of `DeviceTests`.

The only downside of this approach is that it does pushes the limits on some tools. For example:

- `UserAgentStringsTests.cs` is over 112K lines of code so code analysis tools like ReSharper can have trouble keeping up.
- With over 13K individual test cases, the ReSharper unit tests runner did hang occasionally. Reorganizing test cases within namespaces and families did help tremendously.
- Xunit GUI runner takes forever to initialize and build list of test cases but console runner runs with flying colors.
- T4 template generator did start running out of memory & VS had to be restarted but this happened only in one session.

I think the above problems are an issue if you're hacking & refactoring the templates & generating the test cases code in quick bursts but shouldn't be a bother otherwise. If it proves painful with time, one can always revert.