BigNumber bitwise opts

As of now the gated bitwise opts are completely precise; it doesn't make sense any other way. However, the shifts are not fully precise; I wanted to get your opinion on that.

There a few touch-ups in here, as well as the addition of `~` into the parser.
#86
I think it would be more neat to have the functions `leftShift` and `rightShift` only accept a BigNumber (same as bignumber `and`, `or`, etc.). So *all* type checking logic will be located in one place: in the function /lib/function/bitwise/leftShift.js (and the same for rightShift). Does that make sense?