Add error and truncation handling; ssl support; heavy refactoring

@mcinbell @IAmFledge Can you please sign off?

@waynemoore For reference

The purpose of this pr is as follows:
1. Allow users to select how they want to handle errors, including the option to redirect errors to a separate output
2.  Allow users to select how they want to handle data truncation, including the option to redirect truncated rows to a separate output
3. Allow the component to connect via SSL
4. Add crude support for upgrading from a previous version of mongosis
5. Refactor the code, striving to use Visual Studio conventions whenever possible (i.e. formatting, namespaces, etc.)
6. Improve the code documentation and readability.
7 Fix bug that was throwing an exception on the initial add of the mongosis pipeline component