Debugger code cleanup. Added idle monitor.

* Added ProcessInfo to hold process information, like ThreadInfo.
* Added ProcessIdleMonitor class to watch the process activity.
* Moved configuration out to the program class.
* Agent now uses process created/exited events to sync with the
debugger.
* PEB pointer is now obtained via NtQueryInformationProcess() call
instead of TEB hacking.