Add description change events.

Further along the server implementation card, this commit introduces the
ability of a server description to update itself with the result of an
ismaster command. The result of any changes will fire corresponding
events to the server, starting with a host being added or removed in a
replica set.

This is part of RUBY-677, but does not complete it.