Allow properties dict along within a ServiceInstance

When joining a ServerSet, it can be handy to attach some extra data to
the published ServiceInstance (i.e.: debugging info, service version,
etc.). This is expressed in the form of a <str, str> properties dict.

This only takes effect when reading/writing JSON (for now).

Signed-off-by: Raul Gutierrez S <rgs@twitter.com>
what problems do you envision with having properties be a free-form Map<str, str>? we could probably document it as "additional info" to avoid people depending on it as stable API, but besides that i don't really see much risk and predefined keys sounds too inflexible.