(TWILL-107) Payloads for discoverables

This adds the ability to have payloads for ``Discoverable``s. 
It was wrapped in other case simply for providing the `equals` and `hashCode` implementation. Since `PayloadDiscoverable` already implements those methods, there is no need for wrapping.