Define task model
Add **/*.ipch as ignored file
Clean linting errors and some minor fixs.

* Remove obsolete setID().
* Add instance as a member variable for Builder.
* Add class documentation.
* Clean linting errors.
Also clean some linting errors
Cherry pick lint warning
Reorganize class to public-protected-private
Separate API from exposed modules
Merge pull request #38 from evansb/query-engine-api

Propose a structure for the Task class