Merge pull request #5 from rjpower/master

Add stealing to threadpool.
logging with date; reorder utils.h classes
typedef SpinLock ShortLock
rename ConditionVar to CondVar

"Var" is short for "Variable". To be consistent with short names,
either use "ConditionVariable" or "CondVar". Less typing is great.
minor minor change
randomized rpc function id

Numbering rpc function id is not a good practice, because we can't
register services from 2 .rpc files to rpc::Server, their function
id will conflict. So we randomly choose 0x10000000~0x70000000 as
rpc function id, which lies in positive i32 range.

When registering rpc handler or service to rpc::Server, if there's
a conflict (not likely), return -EEXIST, and do proper cleanup.
Add header section to RPC description file.

Make stealing from other threads more frequent and adjust sleep
frequency.