bugfix: make EUPS independent of $SHELL

Before this patch, EUPS detected the shell it's running under by inspecting
the SHELL environment variable. This is incorrect, since SHELL will point to
the *login* shell, and not the most recently run shell. This leads to errors
when a user starts a different shell w/o manually resetting the SHELL
variable; e.g.:

    $ echo $SHELL
    /bin/tcsh
    $ bash
    bash-3.2$ source bin/setups.csh
    bash-3.2$ setup some_package
    bash: setenv: command not found

This patch makes EUPS look for EUPS_SHELL environment variable, which is
defined in setups.[sh|csh|zsh] scripts.  Since the knowledge of the running
shell is needed to support the setup/unsetup aliases, by defining EUPS_SHELL
in the same scripts the two cannot get out of sync.
Merge pull request #8 from mjuric/eups_shell

Use $EUPS_SHELL (not $SHELL) environment variable, and set it in setup.*

This avoids problems when people exec shells but don't reset SHELL
eupspkg.sh: clear some envvars to avoid accidental interference
Stop "setup --keep --verbose" from printing the products that are being kept

They are still printed at verbosity >= 2
eupspkg.sh: only look up variables with EUPSPKG_ prefix in the environ.

Currently, this applies to only three:

	EUPSPKG_REPOSITORY_PATH
	EUPSPKG_SOURCE
	EUPSPKG_VERBOSE

When specified on the command line, no EUPSPKG_ prefix should be used (i.e.,
eupspkg SOURCE=...  <verb>)
eupspkg.sh: support VERSION_PREFIX and VERSION_SUFFIX

$VERSION_PREFIX and $VERSION_SUFFIX are the prefix/suffix that
version_to_gitrev() removes from version before interpreting it as a git
rev (to be interpretable by git-rev-parse).

This lets one have a such as:

	hsc_1.2.3_c

that is converted into a 1.2.3 rev (which will, most likely, be a tag).

Also, when in DEVMODE autoversion() will prepend/append the _PREFIX, _SUFFIX
to the autogenerated version.

Environment variables EUPSPKG_VERSION_PREFIX and EUPSPKG_VERSION_SUFFIX will
be consulted if VERSION_{PREFIX|SUFFIX} are left unspecified.
eupspkg.sh: added copy_function() to enable calls to overridden functions
eupspkg.sh: prefer GITREV to SHA1, fix bugs with git-archive
eupspkg.sh: rename GITREV to REPOVERSION, fix tag->SHA1 resolution bug
eupspkg.sh: run fix_autoconf_timestamps only if not a TaP package
eupspkg.sh: non-intrusive site-specific customization of eupspkg scripts

The package distributor can have eupspkg.sh source a list of shell scripts
specified in a :-delimited string in SITECUSTOMIZE keyval argument (or
EUPSPKG_SITECUSTOMIZE environment variable).
eupspkg.sh: source EUPSPKG_SCRIPTS, and ./ups/eupspkg.cfg.sh by default

This removes the need for awkward boilerplate where ./ups/eupspkg would need
to source the eupspkg.sh library, then override variables/functions, and
then run the verbs.

Now it is the (former) library that is executed, which sources
./ups/eupspkg.cfg.sh and runs the requested verb.  The user can still
override this behavior by specifying their own ./ups/eupspkg.

Also renamed [EUPSPKG_]CONFIGS to [EUPSPKG_]SCRIPTS.
eupspkg.sh: TaP package improvements/bugfixes
eups_console: mechanism to echo messages to console

During 'eups distrib install', anything that's echoed to file descriptor 4
by ./ups/eupspkg script will be captured and echoed back to the user.

FDs 0 and 2 (stdin and stderr) are still captured in the log file and shown
only in case of error.
eupspkg.sh: call install_ups any time there's no $PREFIX/ups dir
Minor edits to satisfy review comments (pull req. #7)

https://github.com/RobertLuptonTheGood/eups/pull/7/files
Merge pull request #7 from mjuric/eupspkg

Further enhancements to EupsPkg
pkgautoversion: if multiple tags are present on commit, return earliest one

This fixes a bug where this wouldn't happen if the tags were on current
commit (i.e., when git describe returned <tag>-0-g<sha1>).
pkgautoversion: change version number computation

Now applies the following logic:
  * If ref is a tag, returns the ref
  * Otherwise, return an annotated tag attached to ref
  * Otherwise, returns [branch-g]<sha1>[-dirty]

If multiple tags are elegible to describe the ref, uses the
one that's the lowest when compared per-component (i.e.,
given tags "1.2.3", "1.2.4", and "1.12" it will use 1.2.3).

If --dirty is given, ref must be empty or HEAD.

Example versions:
	7.10.2.1
	master-gdeadbeef
	ticket.dm-1234-gdeadbeef
Release_Notes: update for v1.3.0