Switched to using smart pointers

Using smart pointers for memory management. Also implemented the Scene
class.