Hierarchy testing

I finished the test functions for Hierarchy class. There are still 4 unfinished functions inside this class.  
        Derived* GetRoot() const;
        virtual void SetRoot(Derived* root);
        Derived* GetParent() const;
        virtual void SetParent(Derived* parent);

There is also one function std::vector<Derived*> Flatten() that is not useful anymore and need to be removed. I will add tests to these missing functions when they are done in C++. 

You can test function by running  command `tests_Hierarchy:RunTests()` in our Lua console.