Simplify deprecation machinery: don't cache previous messages, and use warnings rather than logging.

Alternative to #196.

This PR simplifies the Traits `@deprecated` decorator in two ways:

1. It removes the cache: if an application using Traits doesn't want to see duplicate log message or warnings, then it should be the job of the application to configure warnings / logging appropriately.  The cache was also making testing difficult (see #190 and #196).

2. It replaces the logging call with a simple `DeprecationWarning`.

If there's a strong case for using logging instead of warnings, we can revert the second part.

Updated the PR to add a test, along with an `assertDeprecated` method to `UnittestTools`.


We *could* add a `sys.version` check here, and not execute the hack for Python >= 3.4.

Looking closely, it's not quite true to say that it's unnecessary on Python >= 3.4:  it's unnecessary on Python >= 3.4.2 (released in October).  It's still necessary on 3.4.0 or 3.4.1, so it would be better not to execute the hack for Python >= 3.5.  And Python 3.5 doesn't even exist yet.

All in all, I think I'd rather just leave this as it is. :-)