units: refactor (& thus fix bounds_checked_int<> * units<>)
units: add typedefs for common unit<> types
units: delete outdated comment
add non-member unit<> get(), & tests
units: fix overlooked redundancy

(now that make_unit_type does get_primitive_int_type)
units: refactor
units: refactor
units: refactor units<> templ args to duplicate them less in code
units: add experimental dimensional-analysis helper
units: add pseudoscalar support (for pseudovectors/cross-products)
units: add units_prod<> for type-level construction of units-types

I'm not sure how it compares aesthetically to the decltype()
versions; both are somewhat ugly due to C++ foibles.
units: improve static_pow<>
units: make static_pow smart enough not to overflow when it can
units: fix tests comment & add improved test
units: refactor: rearrange & add unit_representation_type<>
units: add sign() that returns correct units
fix unit<> to work with vector3<> (pending vector3 changes)

The unit<> should be *inside* of the vector, not enclosing it.
units: fully implement static ratio exponentiation
units: Allow units<> to be compared to zero.

This allows a vector3 to be divided by a units<>
(divide_rounding_towards_zero compares its divisor with 0).
units: allow making/unmaking of possibly-trivial unit types