Core client: data structures

The key data structures in the core client are as follows.

Basic types:

PROJECT
APP
FILE_INFO
APP_VERSION
IO_FILE_DESC
WORKUNIT
RESULT
ACCOUNTS
Contains a vector of PROJECTs, summarizing the accounts file.

CLIENT_STATE

Contains vectors of all the basic types. These are crossed-linked with pointers; for example, APP_VERSION has a pointer to FILE_INFO. Also contains FSM sets for network connections, HTTP operations, file transfers, and active tasks.