Python3 support!

After I have been using this code for quite some time now, I consider it stable enough for a PR.
Considering that Traits is now one of very few libraries that still do not support python 3, I guess it is due time anyway. 

I do use the code from this branch during my every day work although in the form of my branch `burnpanck`, which includes just a few more small improvements that are orthogonal to the python 3 compatibility. I use it daily on linux under python 3.3, as well as on windows under python 2.7. From time to time I use it under python 2.7 on linux as well. My usage might not cover all features of Traits directly, but I also use it via TraitsUI and recently Chaco. 

This PR will induce some behavioural change even under python 2.7: Traits that refer to an attribute name (i.e. `DelegatesTo`) will accept byte and unicode strings under python 2.7. Before this PR, Traits would throw an exception on unicode names under python 2.7. This particularly helps for code that has to be compatible with both python 2 and 3, where one should do `from __future__ import unicode_literals`.