raft: filter out messages from unknown sender.

If we cannot find the `m.from` from current peers in the raft and it is not
a local message, we should filter it out or raft panics.

It has to be done in the raft node layer syncchronously. Although we can check
it at the application layer asynchronously, but after the checking and before
the message going into raft, the raft state machine might make progress and
unfortunately remove the `m.from` peer.

Fix #1851