Correct bitv build failures and a bug in all()

These are the changes I mentioned on rust-lang/rust#19216.
> This instruction always performs a logical shift right operation. The most significant bits of the result will be filled with zero bits after the shift. If op2 is (statically or dynamically) equal to or larger than the number of bits in op1, the result is undefined.

[docs](http://llvm.org/docs/LangRef.html#id96)
[outstanding issue](https://github.com/rust-lang/rust/issues/10183)