Support pen color
Support pen width
Add ToolFactory
Refactor code with ToolFactory
Add initial code for pick tool