Chunk server: start on chunk server multi-threading Implement client state machine thread class. Change client state machine, and chunk server class to work with client threads. Define client thread entry portion of the client state machine state to allow to run network io (including ssl code) and [write prepare] checksum computation in parallel withing multiple client threads. The required changes to remote sync state machine still pending.
Chunk server: continue on chunk server muti-threading. Implement parallel request parsing, checksum computation, and network receive and send with client threads. Implement pending client state machine pending ops, and io buffers grant dispatch.
Chunk server: change remote state machine to allow it to run withing client thread, and queue ops/requests as well as shutting down by invoking Finish() method from any thread. Invoking Finish() method from other thread or with non empty pending queue, will schedule to run finish method, unlike running it synchronously. Presently this should not present a problem, as all remote sync state machines, and state machine lists should be created withing the same thread that runs client state machine. Handling remote sync state machine with  the write append state machine are still pending: write append state machine might (and most often will) invoke Finish() method from the main thread which runs the timers.
Chunk server: implement remote sync state machine logic with write append and client threads. Create peer's remote sync state machine withing a client thread. Implement handling of remote sync state machine finish method invocation from a different thread than the client thread by keeping the state machine reference until after the finish method returns in order to grantee the state machine object validity. Restrict access to client and remote state machine thread list entries methods, move client and remote sync specific methods into the corresponding client thread list entries classes. Make methods naming more uniform.
Merge branch 'topic/krb' into topic/cs_threads
Qfs tools: fix Apply() invocation in copy from / to local methods, by correcting the arguments order.
Merge branch 'topic/krb' into topic/cs_threads
Merge branch 'topic/krb' into topic/cs_threads
Chunk server: fix linux compile by adding required include directives.
Chunk server: fix include file names capitalization.
Chunk server: fix include file name capitalization, and linux compiler warning.
Chunk server fix include file name capitalization.
Chunk server: fix include file name capitalization.
Chunk server: fix include file name capitalization.
Chunk server: minor formatting fix.
Kfsio library: fix generalized time stamp parsing.
Merge branch 'topic/krb' into topic/cs_threads
Common lib: add 4 byte version of sync add and fetch.
Merge branch 'topic/krb' into topic/cs_threads
Client lib: fix path cache invalidation and insertion to handle concurrent i-node number changes performed by other simultaneously running QFS client. One such failure was exhibited with listing directory "a" with single directory entry "a", then performing the following sequence from another qfs client: mkdir b; mv a/a b/ ; rmdir a ; mv b a; then listing directory "a" again after 30 seconds (i-node cache invalidation interval) passes. Invalidate cached i-node number entries with path prefix if i-node number changes. Clear cached entries with the common directory prefix before inserting results of read dir plus into the i-node cache, in order to clear stale directory entries, if any, and handle possible change in the directory i-node number.