Improve ErrorMessage functionality.

To solve the problem of only having one instance per window, I modified
the class so that a window can have one private ErrorMessage instance
and can have errors added/removed from it at any time. I also maintain a
reference to the window from the ErrorMessage instance so that the
window reference doesn't have to be passed in more than once.

I still need to support:
- Closing the error message
- Removing individual error labels from the error message
- (Potentially) Showing the error message somewhere other than the
bottom of a window