Add a basic test suite via cram

mkrc and lsrc are well-covered, rcup not so much, rcdn not at all.
Fix failure in lsrc behavior

Multiple -d options were not being handled correctly. I tracked the
problem to pushdir/popdir.

In the process of fixing this, I was able to remove them entirely by:

1. Never going more than one level deep
2. Replacing them with cd/cd $OLDPWD

I also noticed that basic file, host file, and tag file all had the same
logic, so it's been extracted into handle_directory.
Add RCM_CONFIG environment variable

Providing an alternate config as a command-line flag would be impossible
due to the required timing (it must be sourced before option parsing for
most of rcm to work correctly).

So I chose to use the RCM_CONFIG environment variable. I also moved the
sourcing to occur at the end of loading rcm.sh always.