Flesh out {do, has}{Read, Write} functions for individual endpoints.

These functions mirror the functionality of the generic* functions in the
haskell engine, serving to manage the interaction between handle, buffer and
subscribers.
Remove unnecessary generic* methods from the Engine.
Add type definitions for trigger dispatch table.
Simplify MessageProcessor, and add DispatchMessageProcessor implementation.

Since the program's state is global and doesn't need to be carried around as in
the Haskell engine, the only functionality the message processor really needs to
provide is, the ability to process a message. There is no need for state
threading (as far as I can see), so MPStatus can be reduced to a simple enum.
Implement the engine's processMessage and runMessage methods.
Switch to using std::shared_ptr, with appropriate includes/namespaces.
Add CPP generation for trigger-wrapper functions.
Parameterize serialization method, allowing for alternatives.
Fix minor duplicate semicolon issues.
Add trigger dispatch table declaration and population generation.
Add implementations for engine read/write.
Add serialization definitions to code generation.
Implement Boost wire description.
Added file to parse old K3_ocaml code
Renamed k3-ocaml parse file
Changes to make k3ocaml parsing run
Pack collection dataspaces indicating the type of dataspace

External dataspaces aren't copied like they should be.
Modify collections in place by moving the mutated copy on top of the old one.
Modify the collections example to use externals
Merge branch 'master' of github.com:DaMSL/K3-Core