Add vim modeline to try to force sensible code formatting in the future.
Started tidying up cpp_interface. An interface header file shouldn't really
have the implementations in it!
Remove "using ..." from cpp_interface header file. These declarations
SHOULD NEVER BE IN A PUBLIC HEADER FILE because this may cause conflicts
with what the client is using.
Clean up CPP interface a little more by forward declaring STPMgr and
UserDefinedFlags so that we don't need to include them.
Changed LETMgr object to a unique_ptr so we can forward declare it
and avoid including its header file in cpp_interface.h