Split .bashrc

Introduce `~/.sh.d` and `~/.bash.d` and have `.bashrc` load files from
there.

The reason for this split (general POSIX vs bash-specific) is to make it
easier to migrate to another POSIX-compatible shell (zsh, or even ash,
dash, pdksh), and to make it easier to share settings with other shell
users (such as wonderful zsh-using friends).

Loading files from a directory allows for more flexibility when tagging
files. For example, the aliases could be split into work- and
home-related aliases, and tagged as such, making it easier to install
exactly what you need.

The `~/.bash.d` directory also contains `pre/` and `post/` directories.
These allow for more fine-grained control, such as re-defining functions
or running commands when the system has fully loaded.