Merge changes I76b0a7ba,If7308f1a,Ica8faced,Ia8f42ed0,I975afb45, ... into main
* changes:
Add some documentation to EthernetInterfaceStateMachine
Add support for link state tracking
Add unit test class for EthernetInterfaceStateMachine
Add missing call to add states to state machine
Make class testable
Log.wtf if block times out
Wait on IpClient#onQuit in StartedState#exit
Use TAG instead
Introduce CMD_ON_NETWORK_NEEDED and CMD_ON_NETWORK_UNNEEDED messages
Clean up and document state lifecycle
Add convenience method for processMessage with no arguments
Implement NetworkOffer in EthernetInterfaceStateMachine
Add boilerplate to represent interface states in state machine
Fix typo in SyncStateMachineTest
Move SyncStateMachine to staticlibs