Add removeChildComponent to DocumentPart
attachToParentComponent detaches the component first
Add originalElement property for enterDocument

The originalElement is the element set on the component and is only available for the first time enterDocument is called.
Remove usage of willPrepareForDraw
Don't allow a component outside the component tree to draw
Fix components removal from the component tree

They were not being removed from the root component's cannotDrawList.
Fix bindings spec
Remove useless "source: this" from binding
Stop discovering the parent component in parentComponent

A component needs to explicitly be added to the component tree.
This change can cause a problem for code that manually adding components to the document without calling component.attachToParentComponent() or parentComponent.addChildComponent(component).
Remove component in parent component childComponents check

Since parentComponent no longer discovers the parent component we don't need to explicitly check when adding to the draw list.
Rename _cachedParentComponent to _parentComponent
Emit parentComponent change events