Compile with C++ Compiler

Since the final plugin will be written entirely in C++ it was necessary to make the existing code compile with such a compiler until it can be replaced by something sane. For practical reasons the replacement will be done in steps function to by function in order to have a working plugin at all times and gradually introduce new features or refactored code. Some compile errors needed to be addressed such as:

- add explicit casting for calloc and other void* returning calls
- remove non-trivial designated initializers in the main plugin struct
- fix "crosses initialization" by pulling up multiple variable declarations
Revert "Compile with C++ Compiler"

This reverts commit 9e0ad2743e131dfe11be70fef06718c02002ec35.
Revert "Revert "Compile with C++ Compiler""

This reverts commit f5e313829ca612b133f85d37157a490b860b809c.