Explain why bitwise assignment is different

In python, arguments to bitwise operations must be either plain or long
integers.  The cast is required for correctness and for the unit tests to pass.

This could be improved slightly by verifying the arguments are in fact integers
before the operation is performed.  As it stands "1 & 3.1" will round down 3.1
to 3 instead of throwing an error.
Add associativity tests for bitwise operations
Add bitwise operations to documentation