add free function to manage component

change cmp_type_base to abstraction type
add scene graph free function
add hierarchy level tag