added timeouts to all the polling functions in the i2c code. hopefully if something hangs this gets it going again. timeouts are not added on the data transfer portion, only on the initial setup portion. need to test if this is good enough.
i2c is totally fucking broken though and needs to be replaced before con.
everything is completely untested. I'm sure most of this shit doesn't work and will be fixed when and if I get hardware.