Add UnitsNet.ThirdParty example project.

Intended to show how to extend Units.NET with third party units.
Some issues since original templates are hard coded for UnitsNet.Unit class. Need to add generics to support generating for arbitrary enum types.

* Add FooUnit
* Add modified T4 templates and boilerplate code
* Add UnitSystemExtensions
Update solution to latest VS version.
Fix comments.
Optimize templates for generation of UnitClasses.tt

* Reduce the amount of code needed in TemplateUtils.cs.
Fix UnitConverter.tt.

Reusing TemplateUtils.cs.
Add foo and bar units.

To illustrate how to add multiple classes of units in a third party Units.NET extension.
Move conversion code into unit classes.

UnitConverter pattern is obsolete.

* Remove UnitConverter templates.
* Add modified conversion templates into UnitClasses.tt.
  * Foo static From(FooUnit)
  * double Convert(FooUnit toUnit)
  * bool TryConvert(FooUnit toUnit, out double)
Code cleanup.
Merge branch 'feature/ThirdPartyUnits' into develop
Add LengthUnit.
Refactor UnitSystem to support multiple unit types.

* Add IUnitAttribute
* Add TemplateUtils
* Replace usage of Cultures with string
Add LengthUnit.cs.

Moved out of Units.cs.
Separate out mass units into separate enum.
Temporarily exclude items with compile errors.
Move unit files into Units folder.
Refactor all units to new templating system.

Progress in supporting third party units.

* All units of measurement has its own unit enum, such as LengthUnit.
Remove lingering file.
Rename generated unit classes.

From <Unit>Unit.g.cs to <Unit>.g.cs.
Fix R# warnings.
Fix InterUnitConversionTests.