Merge instrumentation and analysis agents and servers
This is an initial snapshot in which the support for instrumentation and analysis has been merged. This means that instead of two native agents (one handling instrumentation and one invocation of remote analysis methods) there is only one that handles both. Similarly, instead of two servers (one handling instrumentation requests and one handling remote analysis requests) there is only one that handles both.
The communication protocol is now defined using protocol buffers, so that changes in the protocol can be easily accomodated both in the native agent and its Java counterpart.
The code base sliced and diced to get rid of extraneous packages (and instead uses subdirectories for logical parts of the code base). This is still development work, as the project as a whole needs to be transitioned to become multiple projects with clearly defined dependencies and artifacts.