Highlander Pattern

This is part of the Python Guidelines.


 * Currently, uses lots of global variables
 * However, a long-term goal is to change that
 * The Python interface should be without global object/variables from the start
 * Pro: no need to change interface when they are deglobalized
 * Pro: interface looks much more OO and pythonic
 * e.g. there could be a class
 * How to avoid double instantiation of global objects
 * Singleton doesn't work: will return the same object when instantiated twice
 * Highlander class
 * There can only be one!
 * When the class is instantiated the second time, raise an exception