Pen/Brush stacks

Should be self-explanatory. First two commits implemented everything as Pen and Brush objects with m_currentPen/Brush, final commit turns this into a stack.