medium: parse: Allow empty attribute lists

Pacemaker allows empty attribute lists, and if one appears
in the CIB and crmsh doesn't parse it, it'll appear as an
xml entry. There is no actual parsing reason not to allow it.
dev: cibconfig: Allow calling create_from_node with container objects
medium: ui_resource: Fix race in start/stop/manage/unmanage (bnc#877640)

Instead of using its own custom CIB commit command, use the cib_factory
to modify and commit the metadata changes induced by
start/stop/manage/unmanage. This enables patching for these commands
when Pacemaker supports it.

Without patching, CIB modification is prone to race conditions where
parallell CIB changes are overwritten by crmsh.
test: Update resource test case
dev: cibconfig: If already editing the CIB, don't commit changes immediately
dev: Update TODO
medium: report: Return to handling timestamps internally (bnc#877495)

Since datetime objects cannot safely be compared with each other,
revert to using timestamps in seconds.
Retain possible subsecond precision when converting from datetime
object to timestamp by adding microseconds to converted second value.
Merge pull request #23 from krig/bnc877640

medium: ui_resource: Fix race in start/stop/manage/unmanage (bnc#877640)
Merge pull request #24 from krig/bnc877495

medium: report: Return to handling timestamps internally (bnc#877495)