Move LEGO header files to drivers/lego directory.

These files were in include/linux/legoev3.

Also moved legoev3_battery from drivers/power to drivers/lego/ev3
Fix unintended diffs from mainline kernel
Move EV3 input and output port drivers to new lego bus/lego-port class framework.

* Removes the old legoev3 bus completely.
* Removes the concept of a separate "port host" device (although we still have
  something like this for triggering udev rules for I2C and UART sensors - but
  these are just sysfs devices with no drivers).
* ev3-analog and nxt-analog drivers are fixed up to work with both EV3 input
  ports and sensor muxes.
* Normalize port name uevent properties to PORT_NAME
* Get rid of lego_port_type and just use device_type instead

Issue ev3dev/ev3dev#219