Added check for different filetype in the same buffer to rebuild prefix/suffix

extracted code from RemovePrefixNSuffix() into CrunchInit(). This code
deals with the building and removing of the prefix/suffix.
Removed check for b:suffixRegex

also added variable name test
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
Headers to use '"' instead of '='
Made '-exclusive' switch work in all situaltions

Added the crunch#CaptureArgs() to capture the range, and arguments
when calling CrunchLine or CrunchBlock. The capered range then could be
used to correctly set the stopline for the backward search in the
GetVaraibleValue() function.

Also cleaned up various parts of the code, as well as  the crunchLine017 tests
Added descriptive header for crunch#CaptureArgs()

Also other style changes