Added handling for the colon character

It is common to group commands into namespaces by using a colon in the command name to separate them.
However standard bash completion treats the colon as a wordbreak (useful for ssh/scp)
This change allows bash completion to work with commands including a colon character
Based on the answer from this stack overflow quetion:
http://stackoverflow.com/questions/10528695/how-to-reset-comp-wordbreaks-without-effecting-other-completion-script
Merge branch 'duncan3dc-master' into refactor
Fix shell terminating when an error occurs during completion

The shell asking for completion was exiting when PHP exited with a non-zero
status. This was due to `exit` being use instead of `return` in the context
of a BASH function.

This made it quite frustrating to develop the module, so I'm glad this is
now fixed.
Extract completion handler input to CompletionContext

The CompletionHandler class was handling both completion and setting up the
command/words to complete for. CompletionHandler now takes a CompletionContext
in its constructor, which provides the command and words to complete for.

Additionally:

* Replaced use of the COMP_WORDBREAKS variable with a set of break characters
  more suited to parsing Symfony console application command-lines. This was
  needed for the colon character fix from #1 to work properly, as previously
  ':' was still in COMP_WORDBREAKS so was used to split a command up.
* Added unit tests for CompletionContext