Add a Ci plugin to:

- add a ci task to encapsulate typical gradle tasks run on a ci server into a single task
- add a setupCi task to allow projects to specify custom setup for the ci task
- add a preCommit task that can be run before committing change and runs everything from ci except 'publish'