### Peer is still banned, allthough ban endtime has been reached

Here the log line of the banned peer:

`2017-11-04 16:12:03 Misbehaving: 212.203.47.xxx:61681 peer=56085 (0 -> 100) BAN THRESHOLD EXCEEDED`

In the debug connection window, the peer shows up as banned, with the ban endtime of 2017-11-05 17:12:03 CET, see screenshot (marked blue peer).

Then today, 2017-11-05 around 10 o clock CET, I stopped bitcoind 0.15.0.1, replaced the binaries with 0.15.1rc1 and started bitcoind again.

Now, as the time of the screenshot is 17:40 CET, the ban endtime had been reached, but the peer does still show up as banned.

Edit: Situation unchanged at 20:46 CET.

### Expected behaviour
Peer disappears from the "Banned peers" list, when ban endtime has been reached.

### Actual behaviour
Peer does not disappear from the "Banned peers" list, allthough ban endtime has been reached and exceeded.

### Screenshots.
![bildschirmfoto](https://user-images.githubusercontent.com/8447873/32416947-f2e0129a-c251-11e7-9c92-528f0ff3ae5d.png)

### What version of bitcoin-core are you using?
0.15.0.1 / 0.15.1rc1

### Machine specs:
Linux amd64

{
    return a.nTimeConnected > b.nTimeConnected;
}
static bool CompareNetGroupKeyed(const NodeEvictionCandidate &a, const NodeEvictionCandidate &b) {
    return a.nKeyedNetGroup < b.nKeyedNetGroup;
}
static bool CompareNodeBlockTime(const NodeEvictionCandidate &a, const NodeEvictionCandidate &b)
{
    
    if (a.nLastBlockTime != b.nLastBlockTime) return a.nLastBlockTime < b.nLastBlockTime;
    if (a.fRelevantServices != b.fRelevantServices) return b.fRelevantServices;
    return a.nTimeConnected > b.nTimeConnected;
}
static bool CompareNodeTXTime(const NodeEvictionCandidate &a, const NodeEvictionCandidate &b)
{
    
    if (a.nLastTXTime != b.nLastTXTime) return a.nLastTXTime < b.nLastTXTime;
    if (a.fRelayTxes != b.fRelayTxes) return b.fRelayTxes;
    if (a.fBloomFilter != b.fBloomFilter) return a.fBloomFilter;
    return a.nTimeConnected > b.nTimeConnected;
}
/** Try to find a connection to evict when the node is full.
 *  Extreme care must be taken to avoid opening the node to attacker
 *   triggered network partitioning.
 *  The strategy used here is to protect a small number of peers
 *   for each of several distinct characteristics which are difficult
 *   to forge.  In order to partition a node the attacker must be
 *   simultaneously better at all of them than honest peers.
 */
bool CConnman::AttemptToEvictConnection()