Created class SnElement to replace Sn::Element. This was done in order to decouple SnElement from Sn. Many classes needed to use Sn::Element but not Sn.
Revert "pointers and reference confusion"

This reverts commit 3f4f65b65e7f1e50664a8e4f6e8c508b5f92e8f3.
Revert "Here are the new files :)"

This reverts commit d4766de77409e19b0f49481aa2dc07c3145386b8.
Revert "Added IElement * ElementFactory.. now implement"

This reverts commit ee9c6e9554ff5706b1f872ec3b1d0d040b55a2a5.
Merge branch 'refactor'