refactor: Use generic Vector instead of plain array in Obj3dManager class
refactor: Removed unused parameter p from Obj3dManager.sortObjects() method
refactor: Added project() and draw() methods to Obj3dManager class

This fixes a small glitch in the ModelCanvas, that sorted the objects by
projected coordinated before they were actually projected. Order now is:
project -> sort -> draw.
refactor: Added Graphics parameter to ModelCanvas.updateImgBuffer() method
refactor: Extracted ModelViewer.draw() from ModelCanvas class