Refactor lifecycle
Add nkro_enabled check
Fix some warnings
Hardware keyboard can now be pre-plugged in.