Remove base_component concept

After further consideration, the base_component concept, while fun to
implement, is not as powerful or flexible as falling back on well places
properties is. With the addition of the ability to set elements to
:preset (simply control their existence) it makes more sense to leverage
properties. Furthermore, the ability to have 'singleton' entities in the
tree further lets one split up the XML document in a more coherent
manner.

The reasoning for this change is due to how some applications interpret
element existence. While sometimes an element is only in place to support
one or more sub-entities, if it does not contain any sub-entities, that
could potentially be misinterpreted by an application. Such an empty
'base' entity could be considered a misconfiguration. The 'base_elements'
simply did not allow for fine grain control in such a case.
Detect simple component presence

Without this commit, an empty element is not detected as present when
'should' value is :present.

This commit makes sure when the 'should' value is present and the
component exists, it will be considered :present when checked.