fix updating handler socket => host value

When updating a handler, the socket value only updated if the port had changed. It was also doing some verbose checking that wasn't future proof.

This change includes a general spec along with using existing required method definitions to compare the `is` and `should` values