Conditionally enable whitespace mode

Enable whitespace mode in non-interactive programming modes.
Add basis/define-keys

Allows multiple key bindings for a single keymap to be defined in
one form. This sometimes seems to help reduce visual noise.
Update init-paredit.el

- Add a function to paredit-space-for-delimiter-predicates to stop
  an extraneous space being entered when writing CL pathnames.

- Use basis/define-keys to tidy up the eval-after-load form.
Move a few mappings into eval-after-load forms
Require Magnar Sveen's s.el library
Add init-eshell
Get some more use out of basis/define-keys
Map org-iswitchb
Add move-text
Add basic C setup