mon: track original Connection* for forwarded requests

Keep a reference to the source Connection* for forwarded requests.  This
makes the reply path slightly cleaner, and will help us later.

Signed-off-by: Sage Weil <sage@inktank.com>
mon: requeue routed_requests for self if elected leader

If we have requests that we have forwarded, and are elected leader,
requeue those requests for ourself and queue them normally and clear out
the routed_requests map.

Signed-off-by: Sage Weil <sage@inktank.com>
mon: drop forwarded requests after an election

On each election, we resend routed requests to the new leader (or
requeue for ourselves).  Therefore, if we receive a forwarded request,
we should drop it on the floor if there is a new election.  Add a field
in the PaxosServiceMessage struct to track which election epoch we
received the request in, and drop it in PaxosService::dispatch() if
that is in the past.

Signed-off-by: Sage Weil <sage@inktank.com>
Merge pull request #241 from ceph/wip-4798

#4798

Reviewed-by: Greg Farnum <greg@inktank.com>