[nxt-analog] fix struct name
I'm tired of seeing these warnings

This stuff still needs review, but is not a priority.
major rework of analog sensors

Analog sensors now have a host device on the legoev3 bus just like the i2c
and uart host devices. There is a nxt-analog-host and an ev3-analog-host. Since
NXT analog sensors lack a resistor to positivly identify them, there is a
`set_sensor` sysfs attribute on the nxt-analog-host that allow the correct
device and driver to be manually selected. The allows individual drivers to
be written for each type of sensor instead of relying on user code to do the
work. Since EV3 sensors have an ID resistor, there is not a need to manually
select the driver.

Also, the analog sensor drivers have been unified into a single driver like the
I2C drivers. Actually, there are two drivers, one for NXT analog sensors and
one for EV3 analog sensors. This makes adding support for a new sensor trivial.

To this effect, the following NXT analog sensors now have drivers:
* LEGO NXT Touch sensor
* LEGO NXT Light sensor
* LEGO NXT Sound sensor (new)
* HiTechnic NXT EOPD sensor (new)
* HiTechnic NXT Force sesnor (new)
* HiTechnic NXT Gyro sensor (new)
* HiTechnic NXT Magnetic sensor (new)
* Mindsensors NXT Touch Sensor Multiplexer (new)

The LEGO EV3 Touch sensor remains the only supported (and known) EV3 analog
sensor.

This commit also includes some changes to the msensor class.
* The `type_id` (numeric) attribute has been replaced by the `name` attribute
  (string). The name is the name of the device/driver for that sensor. In the
  case of UART sensors, the value is `ev3-uart-<type_id>`.
* The `i2c_addr` attribute has been renamed to `address` and is present for all
  sensors, not just I2C sensors.

Closes ev3dev/ev3dev#143
Ref. ev3dev/ev3dev#145