Consume output from git to avoid hang

When there are lots of git remote branches (more than around 200 in our
experience), the getBranchNames method of GitApi will hang inside the
`command.execute()` on line 34. It seems like we aren't consuming the
output of the git command.

Fix this by reading the output byte-by-byte instead.
Merge pull request #26 from lawrence-forooghian/handle-many-branches

Consume output from git to avoid hang
Prevent ambiguity when parsing all job names, by excluding the delimiter from the unique part of the 'baseJobName'.

This prevents confusion when using branch names that have dashes in them, from being mistaken as a job template.
e.g. 'MyProject-RunTests-fix-something-on-master' would be interpreted as a new job template, when it was actually
produced from the 'MyProject-RunTests-master' job template and the branch 'fix-something-on-master'.
The confusion would result in lots of invalid jobs being created for the 'new' job template.
Merge pull request #28 from asavoy/force-job-template-delimiter

Branches with a suffix of templateBranchName will create a new, valid job template. Then creates many new jobs.
Add possibility to start a job upon creation.
Some typos and cleanups.
Merge pull request #32 from jimmyw/feature/startOnCreate

Add possibility to start a job upon creation.