use module_usb_driver simplification

Now requires kernel 3.3 or higher.
split out state_create to match state_destroy

Renamed piuio_free to state_destroy to match names as well.
minor comment changes
llseek isn't needed
split error path from normal in piuio_probe
more constants with better names
add skeletal input_polled_dev to piuio

This is enough to get the device to appear as a joystick to Xorg.  Note
that this joystick doesn't actually *do* anything yet!
name/type updates in state struct
move phys string setup into state_create
comments in state struct
use 0/RESERVED for unrecognized key, not -1
more comment updates
poll will need to reference pin mapping
remove defaults from description

You can read them just fine in sysfs.
add parameter for polling interval
move #defines earlier
split poll code out of read function
move input buffer into state struct

It was allocated automatically before, but to generate input events
we'll need to keep the old state as well.
pass state to do_piuio_write, not filp
poll input and report