add target option and coverage to runtests

runtests [TARGET]

TARGET is assumed to be importable as "cherrymusicserver.TARGET" and
testable as "cherrymusicserver.test.test_TARGET". If not given, the
whole codebase will be tested, excluding a potential local copy of
cherrypy.

Coverage will be limited to the TARGET, if one is given. In that case, a
coverage of 100% is required to pass. If there is no TARGET, coverage
will be limited to the cherrymusicserver, cmbootstrap and audiotranscode
packages and require a minimum of 50% to pass. If the coverage plugin
can't be imported, no minimum coverage is required.
model class
model constructor assigns fields in defined order
improve Model constructor
add 'deprecated' and 'skip' test decorators
models: hide nonessentials from public interface
models cleanup
add model.replace; some cleanup
improve backport.with_metaclass naming
minor implementation improvements
doc for models module
set additional options in runtests

Targeted tests ($ runtests TARGET) will also perform doctests and
fail on @deprecated tests.

General tests without a target will not allow tests to be skipped.
auth: autologin, reject remote admin