Create before_parent_node and before_node

Conflicts:

	src/components/main/layout/construct.rs
	src/components/main/layout/wrapper.rs
	src/components/script/dom/node.rs
	src/components/util/slot.rs
Add some function for pseudo_node and reduce duplication in construct.rs
Rebase PR
Change after and before parent, child node to struct
Fix indent and unefficient code
Remove duplicate get_pseudo_node and so on
Add initialize_layout_data without a channel
Add debug message in MoseOver Event
change pseudo-target-node