Removed AliveResponse since there is no such thing.
Fixed a bug where an ObjectDisposeException could occur.
Made ISsdpAnnouncer expose Location which is on the concrete class.
Searches should always be disposable.
Extracting some helper methods to extension classes.
Removed XmlStateMachine and replaced with XmlParseSet.

This functions slightly different in that you pass it to a function rather
than just newing XmlStateMachine.
Updated equality operators on UniqueDeviceName and UpnpType.

Using more traditional approach by requiring .Equals for equality comparison.
Xml refactoring.
Removing unneeded classes and updating extension methods.
Updating DiscoveryEndpoints to be IPEndPoints again.
Added lots of new unit tests.