ifup: Add policies first, enable successful devices
fsm: Move ni_ifup_pull_in_children to FSM
dhcp4: fix link type comparison during device up events

Previously we invoked ni_capture_devinfo_refresh() directly which lead
to many:

ni_error("%s: reconfig changes device type! d%u l%u", devinfo->ifname, devinfo->iftype, link->type);

This was comparing an empty dhcp4 dev->link struct with one that was
populated during dhcp4 device creation (ie. dhcp4_device_create()->
ni_dhcp4_device_new()->ni_capture_devinfo_init()).

Now, on a device up event (ie. ni_dhcp4_event(..., event==NI_EVENT_DEVICE_UP),
we invoke the proper refresh function (also used during ni_dhcp4_acquire())
and compare properly initialized dev->system AND dev->link structs to
detect potential changes in device type from time of creation (represented
by dev->system) to time of configuration/re-configuration (represented
by dev->link).

This error has been mentioned in: bnc#880700
nanny: disable down operation for now
fsm: Remove unnecessary, extra ni_ifworker_flatten call
fsm: Remove unneeded config generation for policy
fsm: Remove worker and config gen. from ni_fsm_policy_new
nanny: rename appply policy func. to factory
nanny: Clear config.node on delete policy
nanny: create workers and assign config from create policy
fsm: Proper subclass and superclass check in ni_ifcondition_type()
ifup: include and sort children using nanny
fsm: cancel fsm in order to fail properly on nanny
nanny: Trigger recheck on factory devices from create policy
fsm: ni_fsm_build_hierarchy destructive switch
fsm: ni_ifworker_match_netdev_name() doesn't check if device exists
fsm: Add ni_ifworker_array_t initializer
nanny: Remove unnecessary flatten
ifup: Adjust match generation

- currently link-type is match against the original
worker, there should be new check introduced pointing
to child worker for both name and link-type. Disabled for now.
- <device> name of the worker is always top
nanny: destroy worker after unschedule when unregister