Added tags to snapshot writing. Replaying snapshotted tags is a work in
progress. Tag snapshotting would allow a more dynamic tag implementation,
where tags could be added (or changed, or deleted) while the serf agent is
running.
Fixed tag replay on serf startup. Now we need to figure out under what
circumstances the tags get restored. Might be confusing to pass in tags
from the command line and have them also coming from the snapshot.
Switched from MemberEvent to TagsEvent since the structures / functionality
differ quite a bit, and a TagsEvent is only relevant to a single node.
The serf tags command now works - kinda. Currently if you invoke:

`serf tags -tag a=b -tag c=d`

The running serf agent's flags will be *replaced* completely. The
intended functionality is that you are able to add and remove subsets
of tags. This should be simple enough to figure out.
Tags command now supplements the tag set rather than replacing it completely.
The tags command also has a functioning delete method now, so you can say
something like:

`serf tags -delete mytag`
Added tags validation and a warning message if they look botched in snapshot files.
Changed -tag to -set. Seems more natural to 'serf tags -set a=b'.
Use slice appender from agent package
Added back call to serf.SetTags() during snapshot replay so that tags actually
get restored from the snapshot.
Don't call SetTags() or register a TagsEvent if there are 0 tags present.
Don't take any action unless either some tag pairs are passed in or some tags
are specified for delete. Otherwise we are just registering events for nothing.
Updated documentation
Added tags command to example in install section
gofmt
Merge remote-tracking branch 'upstream/master' into tag_replay
- Removed tag snapshotting
- Removed TagsEvent (not useful without tag snapshotting)
Documentation updated to reflect changes in serf agent snapshotter.
Removed empty tags condition since there is no longer a TagsEvent. There might be a case where you want to SetTags to an empty set if you are deleting all known tags.
Removed EventTags from serf/events.go
Merge pull request #126 from ryanuber/tag_replay

command/tags: Adding `tags` command to change tags while agent is running