Implement proof output

This patch add --proof option to output a proof version. If a positive value is specified, texts are drawn on both text layer and background image  for comparison. If  2 is specified, texts on background are in different colors, usually red for filling, blue for stroking.
You may use `std::unique_ptr` to make it simpler.