agent: tag marshalling functions

I noticed we are starting to re-implement the tag marshal/unmarshal code in a number of places, where we either split the key=value pairs into a `map[string]string` or the other way around. This just adds `agent.MarshalTags()` and `agent.UnmarshalTags()` methods so we can stop copying the code around.

Doing a PR to make sure that the agent is where we should be adding this in. I don't think Serf itself will ever care about the 'key=value' format.