Fix 92168335a4cebefcd7f9cb6e540b95b9ffd8501 (#171)

Callbacks require GtkWindow, GUIMasterBoard is now EventBox, so send
self.parent_window instead.
Prevent errors without a preexisting passwd file
Rearrange Caretaker/Log/Status into gtk Notebooks
Allow duplicate inactive game names
Save/Restore last game name when creating new game
Connect: provide feedback when starting server
Display connection failure error message
Fix Connect's server_failed callback
Add Identifier class to handle user input

Provides accompanying exception and unittest classes.

Intended to handle validation, display, and normalization of user text
input, ie user and game names.

Based on RFC3454 with modifications. Hopefully works as intended.
Python 3 port: 1/?: initial commit

All changes guided using the 2to3 tool.

Highlights:
        * Removed 'bag' in lieu of collections.Counter
        * Refactored constants: replaced module-level variables with
          enums
        * Formatting changes for long conditionals that probably aren't
          compatible with pep8, but certainly much easier to read

Upcoming:
        * GTK support is broken; requires switching to gobject
          introspection
        * pylint/pep8 checks
Vector and Rectangle classes

Details:
        * Vector: 2D vector, with error, iterator and tests classes
        * Rectangles: 2 vectors, with error, iterator and test classes
        * MIMD: support class for unittests similar to the list monad,
          or list comprehensions but more copmrehensible
        * classutils: Deletable metaclass, for excluding class elements
          from membership
Personal roadmap
Utilities for working with cairo:

PushPop
        decorator to save/restore the cairo context
get_max_device_ink_size
        determine maximum dimensions for a series of glyphs (constant scale)
        returns: [width, height] in pixels, unrounded
Additional Rectangle functionality

__getitem__
        support addressing any point within the Rectangle, range [0,1]
__setitem__
        support moving the Rectangle using arbitrary reference points
scale_inscribe
        inscribe one Rectangle into another
scale_circumscribe
        circumscribe one Rectangle around another

All with accompanying unittests
Initial Marker rewrite [unfinished]

This will replace Marker.py once:
        python2 is supported
        glyph width/height ratio problem is solved
Gtk3 port [part 1 / ?]

Notes:
        * Marker.py will eventually be replaced by Marker2.py
        * TurnTrack.py is unfinished. Subsequent commits will start from here
        * Problems fixed:
                PickColor: appropriate fg/bg colors