* Automatic type cast node insertation working in a basic manner
* Port paint fix to handle convertible types
* Code cleanup, documentation,, and minor fixes
* Fixing master merge
* Master merge fix 2
* Master merge fix 3
* Code style fixes
* Fixing logic error, where typecast node with the same input-output types were permitted
* Fixes based on @russelltg 's suggestions
* Got rid of unique_ptr static_casts
* Partial fixes from the code review
* Merging master into branch vol. 3