Add Bridges.is_valid_ip doctests to b.p.addr.isValidIP docstring.

Just to double check that they return the same expected results.
Rename IBridgeRequest → IRequestBridges. It's cuter.
Add bridgedb.interfaces module which simply collects all interfaces.
Deprecate bridgedb.Bridges.is_valid_fingerprint().

 * MOVE bridgedb.Bridges.is_valid_fingerprint() to
   bridgedb.test.deprecated module for regression testing.
 * REMOVE bridgedb.Bridges.toHex().
 * REMOVE bridgedb.Bridges.fromHex().
 * REMOVE bridgedb.Bridges.HEX_FP_LEN.
 * ADD bridgedb.parse.fingerprint module. This now contain equivalent
   functionality to the above removed/moved objects.
 * ADD monkeypatcher code for all the above removed/moved code to
   bridgedb.test.test_Tests suite for regression testing.
Remove bridgedb.Bridges.HEX_DIGEST_LEN; it's completely unused.
Add note that bridgedb.Bridges.ID_LEN isn't used.

It's only occurence is in one commented out line of code, in
bridgedb.Storage:
L414: #        bridgedb.Bridges.chopString(v, bridgedb.Bridges.ID_LEN)))
Move old b.Bridges.is_valid_ip() doctest to b.p.addr.isValidIP().
Make `isValidIP()` backwards compatible with deprecated `is_valid_ip()`.

The old `bridgedb.Bridges.is_valid_ip()` function expected a single
string parameter, and would return a boolean. The new
`bridgedb.parse.addr.isValidIP()` function expected an
`ipaddr.IPAddress` as a parameter.

 * CHANGE `bridgedb.parse.addr.isValidIP()` to convert any strings which
   it receives as arguments into `ipaddr.IPAddress`s, which makes it
   backwards compatible with the (deprecated)
   `bridgedb.Bridges.is_valid_ip()` function.
Rip out `BridgeHolder.assignmentsArePersistent()`, it's never used.

Also, for what it's worth: the "proper" way to implement this would have
been as an @property.

 * REMOVE the `assignmentsArePersistent` method from several hashring
   classes in bridgedb.Bridges module.
Support requiring distribution of bridges with the "Running" flag.

 * CHANGE bridgedb.Bridges.BridgeRingParameters class to support using
   the FORCE_FLAGS config setting to require some N of bridges
   distributed to have the "Running" flag.
Change import of IBridgeRequest to IRequestBridges in test_bridgerequest.py.
Fix old Tests.py; networkstatus.parseALine returns a string.

 * CHANGE test_regressionsNewCode_IPBridgeDistTests_testDistWithFilterIP4()
   and test_regressionsNewCode_IPBridgeDistTests_testDistWithFilterIP6() to
   convert the string returned from networkstatus.parseALine into an
   ipaddr.IPAddress.
Merge branch 'fix/12029-refactor-Bridges' into develop