Modifications to speed things up

- Changed struct BV to a class to better handle memory management of the bit vectors
- Cache the result of ComputeRecentlySeen to avoid doing redundant work