Add a new decorator for functions accepting quantities.
Improve quantity decorator and add tests.
Change the decorator to use Python 3 annotations.
Tidy up and write tests in both py2 and py3 syntax
Use inspect.signature instead, currently no py2 support.
move to extern funcsigs
move to utils.compat funcsigs
Some small tidying
some changes, but not all.
[ci skip]
make it work with or without calling it.
Docs and changelog
fix some typos.

[ci skip]
whitespace removal.
Skip doctests on Python 3 examples
This adds a test decorator called @py3only--tests using this decorator should write the entire test in the test's docstring, so that it may contain Python 3 only syntax.  On Python 2 the test will be marked skip.  On Python 3 the test body will by compiled from the docstring and executed.  Perhaps some version of this could be moved to general test utilities, but for now this is the only test module we have, I think, that could make use of this.