add function for checking neighbourhood for most improving neighbour

add BitVector class for easy flipping