Merge tag '3.0.0' into develop

Release 3.0.0

Clean up naming of units. Add information unit.

New:
* Add information units for bit, byte, kilobit, kilobyte, kibibit, kibibyte and so on up to exabyte

Breaking changes:
* Delete OtherUnit.Piece
* Move OtherUnit.Table/Teaspoon to Volume
* Rename Month30Days Year365Days units to Month and Year
* Fix plural naming of Pressure.KilogramsForcePerSquareCentimeterInOnePascal
* Fix plural naming of Ratio.PartsPer-units
* Custom units added manually via UnitSystem.MapUnitToAbbreviation()

Fixes:
* Fall back to US English culture when parsing/getting abbreviations
* Fall back to custom string if no abbreviation defined for unit

Behind the scenes:
* Replace T4 templates with PowerShell + JSON templates
* Support custom tolerance per unit in tests
* Support decimal and long base unit types (decimal used in Information unit)
* Move code more consistently into Custom/GeneratedCode folders
* Fix misc R# warnings
* Match R# cleanup profile in generated code
Update README.md
Rename project to UnitsNet.Portable40
Add .NET 4.5 portable project (profile 259)

Fix incompatible code
Remove unused EnumUtils.cs with compile error in new profile
Add portable45 project to build script
Use nuget platform subfolders per project build output

Use wildcards in .nuspec to add all files with respective subfolders
Add .NET 4.5.1 target
Rename to fix capitalization of project
Bump to 3.1.0
Merge branch 'release/3.1.0'
Merge tag '3.1.0' into develop

Add nuget targets for .NET 4.5 and portable
Fix compile error in test project
Merge branch 'release/3.1.0' into stable