BCrypt on Python3

Properly use ``force_bytes`` and ``force_str`` so that the bcrypt library is always handed bytes, and the encode function always returns a proper ``str``.

Tested on:
    - Python 2.7 with py-bcrypt and my new bcrypt library
    - PyPy 2.0 with py-bcrypt and my new bcrypt library
    - Python 3.2 with my new bcrypt library