Undid some code that doesn't work in Windows.

It only works in Linux, and I'm using Windows, so with Cameron's
approval I'm teporarily undoing this code until the problem is fixed (so
that I can continue working).
Added an encapsulating UserLayer class.

UserLayer is a child of the Layer class, and in the future it will
encapsulate some other properties as well. UserLayer represents the
Layers that a user of Pinta can interact with directly, so wherever this
was the case, a Layer was replaced by a UserLayer. This was done for
adding re-editable text in the near future, as every UserLayer will need
to contain a class that has some properties for editable text *as well
as a Layer*.
Undid some test code I accidentally committed.
Added a TextLayer to every UserLayer instance.

For every UserLayer instance there is a TextLayer that belongs to it.
All text (that's not being edited) will now be drawn on the TextLayer
rather than the UserLayer - the only exception to this is when text is
being edited, upon which it will be drawn to the ToolLayer like before.
This is subject to change in the future.
Improved on text re-editability.

There are still some bugs to work out.
Improved on the undo/redo of text editing.

Also added new TextHistoryItem class.
Undid two accidental comment changes.

These two comment changes occurred while refactoring Layer into
UserLayer.
Added text edit rectangles and cursor changes.

Also added a new Layer for drawing text edit rectangles on. There are
still some bugs to work out.
Tweaked a few not-so-important pieces of code.

Nothing major was changed.
Refactored SurfaceCloned into LayerCloned.

I accidentally didn't refactor this in the previous commit.
Fixed two minor code cleanup issues.
Improved on text edit rectangles.

Also removed the textBoundsLayer and made text edit rectangles draw on
the TextLayer instead.
Fixed some text finalization issues.

Made the LayerCloned event always signal for the text to be finalized
(after the TextTool has been selected at least once before). Also made
the Escape key finalize text while it's being edited.
Undid the Escape key's text finalization change.

I misunderstood when I made the last commit, and one of the two things I
did in it was make the Escape key finalize text while being edited. This
commit undoes that change.
Removed a Thumbs.db file that sneaked in!

Sneaky sneaky, Windows...
Improved on text commit and finalize code.

Now, the state of text being committed vs. finalized is stored. Also,
some enumerations were moved to their respective folder.
Fixed a couple of bugs.

Fixed a couple of bugs, primarily regarding the TextHistoryItem,
cloning, when the TextEngine is cloned, when the cursor is drawn, when
the text bounds are drawn, and etc.
Fixed a Cairo.Path Console Dispose error.
Implemented SurfaceDiff in the TextHistoryItem.
Fixed text edit rectangle and text finalize bugs.

Also improved a few sections of code overall.