collections::bitv: add several Vec methods to Bitv

Adds to Bitv the methods:
  - .push() and .pop() which take and return bool, respectively
  - .collect() to get a Bitv from a bool-yielding iterator
  - .truncate() truncates a Bitv to a specific length
  - .len() returns the number of bits stored in the Bitv