### 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

fMsgProcWake = false;
    }
    
    threadSocketHandler = std::thread(&TraceThread<std::function<void()> >, "net", std::function<void()>(std::bind(&CConnman::ThreadSocketHandler, this)));
    if (!gArgs.GetBoolArg("-dnsseed", true))
        LogPrintf("DNS seeding disabled\n");
    else
        threadDNSAddressSeed = std::thread(&TraceThread<std::function<void()> >, "dnsseed", std::function<void()>(std::bind(&CConnman::ThreadDNSAddressSeed, this)));
    
    threadOpenAddedConnections = std::thread(&TraceThread<std::function<void()> >, "addcon", std::function<void()>(std::bind(&CConnman::ThreadOpenAddedConnections, this)));
    if (connOptions.m_use_addrman_outgoing && !connOptions.m_specified_outgoing.empty()) {
        if (clientInterface) {
            clientInterface->ThreadSafeMessageBox(
                _("Cannot provide specific connections and have addrman find outgoing connections at the same."),
                "", CClientUIInterface::MSG_ERROR);
        }
        return false;
    }
    if (connOptions.m_use_addrman_outgoing || !connOptions.m_specified_outgoing.empty())
        threadOpenConnections = std::thread(&TraceThread<std::function<void()> >, "opencon", std::function<void()>(std::bind(&CConnman::ThreadOpenConnections, this, connOptions.m_specified_outgoing)));
    
    threadMessageHandler = std::thread(&TraceThread<std::function<void()> >, "msghand", std::function<void()>(std::bind(&CConnman::ThreadMessageHandler, this)));
    
    scheduler.scheduleEvery(std::bind(&CConnman::DumpData, this), DUMP_ADDRESSES_INTERVAL * 1000);
    return true;
}
class CNetCleanup
{
public:
    CNetCleanup() {}