Added bash directory bookmarks

This commit adds the ability to remember the current directory under a
specified alias. It's similar in concept to `pushd` and `popd` except
that instead of a stack it's an associative array. The file is stolen
directly from https://github.com/huyng/bashmarks, but since it's only a
single file I didn't see the point in a subtree or similar complexity.
Also, the repository looks pretty stable (hasn't changed in 2 years) so
the chance of updates is slim.

The file defines several single-letter commands to manipulate bookmarks:

* `g <name>`: bookmark current directory under `<name>`.
* `p <name>`: show value of bookmark `<name>`.
* `d <name>`: remove bookmark `<name>`
* `l`: list all current bookmarks

Tab-completion should work for bookmark names, and they're stored in the
file `~/.sdirs` should the need arise to remove them entirely.
Added keychain support to .bashrc

This commit adds code to .bashrc which looks for an installation of
keychain on the system and, if found, invokes it with all private keys
matching `~/.ssh/id_rsa*` (filtering off those ending `.pub`). On a
system without keychain, this code is silently skipped.

The consequence of this is that on first login when the persistent
ssh-agent isn't running (e.g. after a reboot), the user will be prompted
for the passphrases for all their keys. Hitting CTRL+C will get past the
prompt, but the user will be prompted again next login.