GENERAL:
	logging:
		make self.log work in a reasonable way before servers have started serving
        allow logs to be accessed and manipulated remotely
		configurable debug/logging verbosity levels (change on the fly)
    
    message handling:
    	declarative message handling for servers and clients
    	do this with decorators, similar to @setting
    
    Client/ClientAsync:
        create clones that work in different contexts by default
        implement generic flattened version of a packet that can be forwarded
            to do this, probably need a 'Flattened' data type
            probably just a str subclass with a type tag attribute
    
SERVERS:
	GENERAL:
		emit log messages and allow setting log levels
        add manhole interface to allow for remote inspection/debugging

    NODE:
        more flexible configuration of startup options for servers (get rid of shebang lines on windows)
        incorporate node-readable configuration directly into source code (rather than separate .ini file)
            + this allows us to determine the path to the file to be run
            this could be in a specially formatted comment
            other languages could also do this in a comment as long as it gets incorporated in the source
            alternatively, we could launch a subinterpreter and execute the file, then load the info from it
                doing it this way would allow 'structured' options as variable names, and reusing config
                that the node reads to also set things up when run standalone
        GUI to let the node live in the tray

    SUPER NODE:
        ask for a server to be started
            supernode looks up the location to run the server in the registry
    
    CONTROLLER:
    	show servers that are not running on a node
        make server output visible (and clearable, etc.) in the browser
        visual indication when connection to LabRAD or controller is lost
        renegotiate connection automatically after loss
        access all node settings remotely (e.g. directories, modules (now in registry))
        run multiple server instances on one node (set environment variables for each, etc.)
        log when servers start, stop or fail

