Title: GNUe Client startup sequence
Status: Current 

Client [GClientApp()] created and run [.run()]
  |
  +-- GClientApp parses command line arguments and handles debugging, 
  |   profiling, help, and versioning.
  |
  +-- Login Handler [LoginHandler()] setup by UI
  |
  +-- Connections Manager created [GConnections()]
  |     |
  |     +-- Reads the Connections Definition File.
  |     |
  |     +-- Stores a reference to the Login Handler for future use.
  |
  +-- Object File is loaded [GParser.loadXMLObject()]
  |     |
  |     +-- Root Object created and returned.
  |     |
  |     +-- In root object, Connections Manager is set.
  |          |
  |          +-- Data Sources [GDataSource()] ask connections manager for 
  |              a dbdriver [GDataObject()] based on their type and 
  |              connection name.
  |      
  +-- All objects are initialized from the top down.
  |     |
  |     +-- For each Data Source, Client App asks Connection Manager for 
  |         a data connection for the Data Source's dbdriver.
  |           |
  |           +-- If no data connection exists, Connection Manager...
  |                 |
  |                 +-- ... asks the Data Source to ask the GDataObject
  |                 |   what needs to be input from the user to login
  |                 |   to the database (usually, user/pass)
  |                 |
  |                 +-- ... sends a message to the Login Handler asking
  |                 |   for the required fields.
  |                 |     |
  |                 |     +-- Login Handler prompts the user for fields
  |                 |
  |                 +-- ... tells the Data Object to attempt a login
  |                 |
  |                 +-- ... gets the data connection from the Data Object
  |                     and saves it for future data sources.


