Big change in InputController, Canvas

- InputController now store an ArrayList (size: 20) of pos instead of
just returning current pos and last pos.
- Canvas now read the arrayList and draw out all paths accordingly
- Draw light is now done by Canvas instead of LightSource because this
can support multi LightSource