decode_message/1 should handle bogus data

Return an error tuple if the binary data does not match the required
DNS packet structure.