Fixed Bug: Added correct quoting in crunch#ChooseEval()

Also: shortened long line in CrunchEval command
Style: Reorganize Helper Functions

Reorganized the helper functions to closer match the sequence in which
they are called.
Style: In the comment headers add missing '()'

In the comment headers add the missing '()' to the end of the function
names, to match the other function headers.
New: adding '-exclusive' switch (not complete)

The switch  works for:CrunchBlock. I also works :CrunchLine command, but
only when a selection of text is used.
e.g.
':'<,'>CrunchLine' works
':1,10CrunchLine' Dosn't Work

Also added CrunchLine017 to test the '-exclusive' switch but since the
implementation of the switch isn't complete this isn't passing.
Bug Fix: Allow negative variables

Also added a test for negative variables.

The regex involved in searching and replacing negative variables, as
well as testing for valid lines were missing optional '-' signs