Huge commit, I apologize ...

I have made tons of changes to the device files.
It is hard to break them up, so consider this the initial commit.
I have gone way overboard with the amount of files really needed,
and have added a bunch of things for future use.