Thread safety

Hi,

I sumbled across your project when searching for a good Promise/A+ implementation for python, as the futures from the standard library were not realy useful for the problem I needed to solve.

When reading through your implementation i discovered, that you did not use any synchonization primitives inside Promises, even though they are used in concurrent code. These kind of bugs would not be easily discoverable using normal tests but can appear in reality.

This pull request unfortunately includes quiet a lot of commits, as I also made the code Python 3 compatible and protected the internals of Promise objects using properties.

If you have comments or find bugs in this pull request, please complaint!

Adrian