This patch adds basicBlocksOnly and constBasicBlocksOnly helpers which
take an iterator range over VPBlockBase * and const VPBlockBase *
respectively, and return an iterator range that only includes
VPBasicBlocks.
Unfortunately I could not think of a way to have a single version of
basicBlocksOnly that can take arbitrary iterators and also handle
filtering/mapping of both VPBlockBase * and const VPBlockBase *.
Unfortunately, filter_range does not work with iterators over pointers,
so we need to map it to a reference and back. Mapping back to a pointer
is optional, but more convenient when using the iterator range to
populate containers.