Error handling for MQTT payloads that are not utf-8

If a MQTT payload contains non utf-8 data, it will crash the MQTT component. It might be worth adding error handling for this situation instead of crashing.

Aug 28 15:57:00 yzf600 hass[23760]: Exception in thread Thread-2:
Aug 28 15:57:00 yzf600 hass[23760]: Traceback (most recent call last):
Aug 28 15:57:00 yzf600 hass[23760]: File "/usr/lib/python3.4/threading.py", line 920, in _bootstrap_inner
Aug 28 15:57:00 yzf600 hass[23760]: self.run()
Aug 28 15:57:00 yzf600 hass[23760]: File "/usr/lib/python3.4/threading.py", line 868, in run
Aug 28 15:57:00 yzf600 hass[23760]: self._target(*self._args, **self._kwargs)
Aug 28 15:57:00 yzf600 hass[23760]: File "/home/x/.homeassistant/deps/paho/mqtt/client.py", line 2580, in _thread_main
Aug 28 15:57:00 yzf600 hass[23760]: self.loop_forever(retry_first_connection=True)
Aug 28 15:57:00 yzf600 hass[23760]: File "/home/x/.homeassistant/deps/paho/mqtt/client.py", line 1378, in loop_forever
Aug 28 15:57:00 yzf600 hass[23760]: rc = self.loop(timeout, max_packets)
Aug 28 15:57:00 yzf600 hass[23760]: File "/home/x/.homeassistant/deps/paho/mqtt/client.py", line 897, in loop
Aug 28 15:57:00 yzf600 hass[23760]: rc = self.loop_read(max_packets)
Aug 28 15:57:00 yzf600 hass[23760]: File "/home/x/.homeassistant/deps/paho/mqtt/client.py", line 1177, in loop_read
Aug 28 15:57:00 yzf600 hass[23760]: rc = self._packet_read()
Aug 28 15:57:00 yzf600 hass[23760]: File "/home/x/.homeassistant/deps/paho/mqtt/client.py", line 1766, in _packet_read
Aug 28 15:57:00 yzf600 hass[23760]: rc = self._packet_handle()
Aug 28 15:57:00 yzf600 hass[23760]: File "/home/x/.homeassistant/deps/paho/mqtt/client.py", line 2239, in _packet_handle
Aug 28 15:57:00 yzf600 hass[23760]: return self._handle_publish()
Aug 28 15:57:00 yzf600 hass[23760]: File "/home/x/.homeassistant/deps/paho/mqtt/client.py", line 2414, in _handle_publish
Aug 28 15:57:00 yzf600 hass[23760]: self._handle_on_message(message)
Aug 28 15:57:00 yzf600 hass[23760]: File "/home/x/.homeassistant/deps/paho/mqtt/client.py", line 2574, in _handle_on_message
Aug 28 15:57:00 yzf600 hass[23760]: self.on_message(self, self._userdata, message)
Aug 28 15:57:00 yzf600 hass[23760]: File "/usr/local/lib/python3.4/dist-packages/x/components/mqtt/__init__.py", line 392, in _mqtt_on_message
Aug 28 15:57:00 yzf600 hass[23760]: msg.topic, msg.payload.decode('utf-8'))
Aug 28 15:57:00 yzf600 hass[23760]: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xae in position 3: invalid start byte

Thanks for the heads up. Please consider making a bug report at Github as that will be the quickest way for the devs to discover the offending code and remedy it.