Added NeoPixel code, and cleaned up 'state machine' for agent