Basic separation of factory.

Separated Print and Form QL base from Extensions. Extensions now have a separate project from the base implementation, just like the TypeCheck project.
Updated gitignore to the latest version of: https://github.com/github/gitignore/blob/master/VisualStudio.gitignore