core: Layer & View implementation
A compositor has layers stacked from bottom to top. Each layer has its views
which are also stached from bottom to top. Layer can be used for grouping views
and maintaining z-order. For example, a desktop can have several layers like
panel, background and application layers.
View represent visible elements in the compositor space.
<< Written under following criteria. >>
1. View is a rectangle of the same size with its surface.
2. A view can have a parent and multiple childs.
3. View position and transform is relative to its parent.
4. Parent-Child relationship does not affect the z-order.
5. A view can be contained in a single layer at a time.
Change-Id: Ib0ad01575467960c5b04d968389e37879500f21b