simplify dynamic_bitset::find_next()

Instead of masking all bits in the current block that were already
visited and then finding the lowest remaining bit, it shifts the current
block directly to the first unvisited bit and identifies the lowest
set bit.
It requires fewer operations that the original implementation and should
be faster.

See https://svn.boost.org/trac/boost/ticket/5159.
Whitespace changes.
Fix MSVC warnings. There should be no behavior change.
Add support for move constructors in C++11.
Reenable check within test for dynamic_bitset::any().
Improve tests for any() and none().
Add all(), fixing ticket 8445.

Includes test cases.
Improve testing for set(pos, val).
Add test_set(), fixing ticket 6164.