Fixed a regression which caused potential memory leaks and crashes

To fix this, layer methods (such as setLayer(), removeLayer(), etc.) no
longer call the drawLayers() method internally. Therefore, developers
now must do so manually if they wish to have a change to a layer
reflected on the canvas. On a positive note, this gives more control to
the developer as to when the canvas is redrawn.