Hardening of another corner case in cluster singleton, see #3017

* It was an unlikely situatation that was not covered,
  the new leader didn't know previous, because it transitioned
  from Start -> BecomeLeader, old leader was removed and got
  LeaderChanged(None), so none of them could request the other
  for hand-over or take-over.
* Taken care of with the retry timeouts, also when leader
  receives LeaderChanged(None)
* The old leader should have received a propert LeaderChanged
  earlier, which is a flaw in the way we publish leader events.
  That part will be fixed in a separate commit.
(cherry picked from commit 4ee299c72983a30692577d7a927de81ac81d9811)
Buffer LeaderChanged events and publish all on convergence, see #3017

* Otherwise some changes might never be published, since it doesn't have
  to be convergence on all nodes inbetween all transitions.
* Detected by a failure ClusterSingletonManagerSpec.
* Added a test to simulate the failure scenario.

Backport of d32a2ed
Merge pull request #1117 from akka/wip-3017-leader-changed-2.1-patriknw

Backport of leader changed publication, see #3017