Move client message logic into sendMessage func
Add Connection.Listen

Clients can use this method to 'subscribe' to messages and errors on their connection
client.Discover now discovers lights

It adds these to a client.Lights collection, which then could be used to turn off / on light bulbs
Export SendMessage function
Add light file

Very basic currently, and only works in theory and not reality
Correct bitshifting of tagged field
create three sockets: peer, broadcast and write

peer + broadcast are for reading those messages respectively, and write is for writing out new messages. ListenMulticastUDP does not seem to support Write operations... it just does nothing when Write is called on it.
Pass only site + addressable(true) + tagged(true) in connection.Write

This makes my client code work... but I think what we'll need to do is flag the message as addressable someway. I reckon what we'll need is struct for client message building which is then read and converted into an internal struct
Correct field names in message_test.go
Add tests for tagged MarshalBinary + SetPowerOnMarshalBinary
move socket writing logic into Connection.write()