fsm: Add ni_ifworker_is_factory_device() function

This function is supposed to tell whether ifworker
reflects factory device not created yet.
fsm: Make ni_ifworker_complete() funtion external
nanny: Do not reset device upon completion
nanny: ni_nanny_discover_state() checks initial state

This function performs initial refresh and sets initial state.
nanny: Change main loop logic to handle all signals

We perform constant recheck until all ifworkers are satisfied
and all async FSM related events are handled.
nanny: Create new device on DEVICE_READY event
nanny: Factory device handling by nanny

- Perform ni_fsm_build_hierarchy() only upon
  new ifworker arrival
- Do not destroy recheck array each time
- Clean recheck upon device delete event
- Schedule non-existing factory devices
nanny: do not remove worker on delete policy
nanny: clean selected policy on policy delete
fsm: Update client-info only on final state
fsm: Do not refresh client-info state
fsm: Do not flatten on started children
fsm: Add ni_fsm_purge_children() on worker destroy
fsm, nanny: Removing non-initial refreshes
fsm: Set initial state of existing devices on refresh
fsm: Add handling of DEVICE_CREATE event

In the FSM signal handler we perform state update
to DEVICE_EXISTS when new device shows up.
fsm: Rebuild hierarchy when device becomes ready

This is particulary useful when new device shows up.
We may finally match policies and fulfill binding
requiremens.
fsm: Reset completed workers on LinkDown event
nny: recheck on not completed and not active workers