Advertise and update node names

This is the first patch of the series, comments welcome early ;)

I need to update the UI to explain this, and probably make "myName" configurable from the UI.


This is a breaking change (i.e. existing v0.9 clients will misunderstand the message). I've been thinking about how to handle this cleanly in the future, for changes that don't *need* to be breaking (i.e. old clients just don't get the new data). Here's what I suggest:

 - Add the NodeName to the end of the message instead of the beginning.

Then, either,

 - Ugly hack: somewhere around https://github.com/AudriusButkevicius/syncthing/blob/master/protocol/protocol.go#L399, add code that checks for io.EOF returned by the XDR decoder, check if it's a message we might expect to see only parts of (i.e. in this case we can expect that older v0.9 clients will send a clusterconfigmessage without the nodename field), and mask that error.

Or, better,

 - In the genxdr code, add support for an "// xdr:optional" comment on fields, so that if we hit EOF when decoding such a field, return nil error. That's a cleaner solution I think, but the genxdr code is *nasty* business (quick evening hack session); I can take a look at this though.