Typo
Clean up
Use better exceptions

Checking for valid types and values is important, but doing so with
nothing but `assert` is only so helpful. By raising `TypeError` for
incorrect types and `ValueError` for incorrect values rather than
`AssertionError` for everything, the calling code can be much more
responsive to errors.

The original `versionchanged` note in `shift()` is being removed because
this change replaces it. Keeping both notes could lead to confusion.
Clean up

`versionadded` is being dropped from docstrings for anything added in
version 0.1. If not version is mentioned, 0.1 is implied.
Add docstring for _add_time()