This package should look like Unitful.jl but behave like DynamicQuantities.jl under the hood

Tasks:
0. Fix uninformative unit display in "unit re-registration error"
1. Add more tests and a coverage badge (including Aqua.jl)
2. Build out documentation and a docs badge
    -  Include all-stops-out tutorial on defining a new dimension "RadDims"
    -  Add angle to the dimension list
    -  Create a new unit registry with that dimension 
    -  Re-tool sin, cos, tan rules on this particular dimension
3. Add "unit_info(u::Union{Dimension, AbstractUnit{Dimension}})" 
    - Maps dimensions to a meaning (like Force or Inductance) and lists other units of that dimension
    - This can be done without documentation 
        - Use Dict{Dimension,String} to find dimension "meaning" (determine this by unique dimensions)
        - Iterate over registry and list other units that match the query dimension
4. Announce the package
5. Consier supporting ArrayQuantity (can use some Quantity methods as fallbacks)


import DynamicQuantities
import Unitful
using BenchmarkTools

v1flex = ubase.([1u"m/s", 1u"J/kg", 1u"A/V"])
v1uni  = [1*Unitful.u"m/s", 1*Unitful.u"J/kg", 1*Unitful.u"A/V"]
v1dyn  = [1*DynamicQuantities.u"m/s", 1*DynamicQuantities.u"J/kg", 1*DynamicQuantities.u"A/V"]

@btime sum(x->x^0.0, v1uni)
@btime sum(x->x^0.0, v1flex)
@btime sum(x->x^0.0, v1dyn)

t1flex = ubase.((1u"m/s", 1u"J/kg", 1u"A/V"))
t1uni  = (1*Unitful.u"m/s", 1*Unitful.u"J/kg", 1*Unitful.u"A/V")
t1dyn  = (1*DynamicQuantities.u"m/s", 1*DynamicQuantities.u"J/kg", 1*DynamicQuantities.u"A/V")

@btime sum(x->x^0, t1uni)
@btime sum(x->x^0, t1flex)
@btime sum(x->x^0, t1dyn)

Considerations:
N.  Consider commutative macro for promote_rule to prevent repetition
        https://discourse.julialang.org/t/techniques-for-defining-commutative-functions/113406/5
