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

{
    size_t nMessageSize = msg.data.size();
    size_t nTotalSize = nMessageSize + CMessageHeader::HEADER_SIZE;
    LogPrint(BCLog::NET, "sending %s (%d bytes) peer=%d\n",  SanitizeString(msg.command.c_str()), nMessageSize, pnode->GetId());
    std::vector<unsigned char> serializedHeader;
    serializedHeader.reserve(CMessageHeader::HEADER_SIZE);
    uint256 hash = Hash(msg.data.data(), msg.data.data() + nMessageSize);
    CMessageHeader hdr(Params().MessageStart(), msg.command.c_str(), nMessageSize);
    memcpy(hdr.pchChecksum, hash.begin(), CMessageHeader::CHECKSUM_SIZE);
    CVectorWriter{SER_NETWORK, INIT_PROTO_VERSION, serializedHeader, 0, hdr};
    size_t nBytesSent = 0;
    {
        LOCK(pnode->cs_vSend);
        bool optimisticSend(pnode->vSendMsg.empty());
        
        pnode->mapSendBytesPerMsgCmd[msg.command] += nTotalSize;
        pnode->nSendSize += nTotalSize;
        if (pnode->nSendSize > nSendBufferMaxSize)
            pnode->fPauseSend = true;
        pnode->vSendMsg.push_back(std::move(serializedHeader));
        if (nMessageSize)
            pnode->vSendMsg.push_back(std::move(msg.data));
        
        if (optimisticSend == true)
            nBytesSent = SocketSendData(pnode);
    }
    if (nBytesSent)
        RecordBytesSent(nBytesSent);
}
bool CConnman::ForNode(NodeId id, std::function<bool(CNode* pnode)> func)