The ethernet controller can be configured to generate interrupts on various conditions. We should use these interrupts instead of polling. ~~Note that the ethernet code currently only compiles in release mode due to #73.~~