(TWILL-107) Payloads for discoverables

This adds the ability to have payloads for ``Discoverable``s. 
After looking the code again, the wrapping of `Discoverable` is simply for using it as a key in a `Multimap`. However, I think we can remove the wrapping need by simply using a `TreeMultimap` with a `Comparator`.