Fix BitvSet union_with and symmetric_difference_with

Updates the other_op function shared by the union/intersect/difference/symmetric_difference -with functions to fix an issue where certain elements would not be present in the result. To fix this, when other op is called, we resize self's nbits to account for any new elements that may be added to the set.

Example:
```rust
	let mut a = BitvSet::new();
	let mut b = BitvSet::new();
	a.insert(0);
	b.insert(5);
	a.union_with(&b);
	println!("{}", a); //Prints "{0}" instead of "{0, 5}"
```
All reserve does is add new uints to the storage vector. This section is for zeroing out any bits in the current uint (e.g. if nbits is 12, we want to 0 the upper 20 or 52 bits in case there is something in them). Something similar is done in the [insert function](https://github.com/kaseyc/rust/blob/fix_bitvset_union/src/libcollections/bitv.rs#L1549), so I figured it would be best to zero it explicitly to be safe.