Added GAS-DNA:SUBDNA function (DNA subsequence constructor).
Three changes, two of them major:
1. Now the M command loads and displays matches.
2. After executing a command, we always store the last command so the
user can re-execute it later (using the special command "!").
3. A new command SHOW was introduced.
Added a command definition for the special command used to re-execute previous command (an exclamation mark).
Woo-hoo! Big changes!

1. There is a GAS-WORK:WORKSPACE structure and it's used to store
workspace's data.  It's got slots for name, list of sequences and list
of stored matches (we cache them as long as running
GAS-SEQ:FIND-MATCHES multiple times on the same data would be
unwise...).  It uses a BOA constructor initializing only the name of
the workspace and leaving the lists empty.

2. TUI::DEFINE-COMMAND stores the lambda list of a command so that we
can print it in the HELP command.

3. Lambda-lists of commands were changed so that argument names look
more meaningful to a user.

4. A command LM was added to allow listing of available match-sets.
(A match-set is a stored set of matching results from
GAS-SEQ:FIND-MATCHES that we will probably want to display to the
user.)  The M command only computes and stores (caches) the computed
match-set.

5. Some CL:FORMAT calls were replaced with calls to CL:WARN.

6. More names were added to the list of exported symbols of the
package GAS-WORKSPACE.
Support for the direction of the sequence was added.

When a user has a set of F and R sequences, he or she can load them
into Gas and unify the direction by converting all R sequences to
their reverse-complements.
A simple alist and an CL:ASSOC call were replaced with a more accurate
solution analogous to the CL:CASE special form.
Message printed by the M command was changed to something more understandable.
Our SPLIT function should always trim the separator character, not
whitespace characters.
Some big changes:
1. The M command asks for the subsequence comparison method.  There
   are two possible choices: weak (naive string comparison) and strong
   (IUPAC-aware).
2. GAS-DNA:DNA-STRING-EQUAL was reorganized and split into to separate
   functions following the Common Lisp convention: DNA-STRING-= (which
   compares strings) and DNA-STRING-EQUAL (which is aware of the IUPAC
   encodings like W or Y).
3. A JOIN command was added to make it possible to concatenate two
   sequences that were proved to contain a common subsequence.
4. A SET command was introduced to give the user control of some basic
   parameters: minimum and maximum lengths of common subsequences we
   are interested in or the number of selected "best matches".
GAS-WORK:ADD-SEQUENCE has to be exported, it is used in the
GAS-COMMANDLINE package.
While removing a sequence from the workspace, we also remove any
matches that were found in it.
After some testing:
1. When no common subsequences are found, an appropriate message is
   displayed on the screen.
2. Errors are handled, so when we stumble upon an invalid or unknown
   file during parsing, we will handle the situation nicely.
3. File dependencies were updated in the system definition.