Spike for alternate script construction

*Note*: This PR is not meant to be merged as-is, it's an idea I'd like
to discuss within the context of actual code. The diff is incredibly
noisy, so this branch may be best viewed as it is, not as it differs.

---

There are now only three source files:

* `src/base.sh` - The shebang, helper functions, and any functions which
  have the same definition across OSes.
* `src/mac.sh`, `src/linux.sh` - Any installation functions (or
  variables) which differ across OSes.
* `src/run.sh` - A call to run each installation step in order.

In the process of this spike, I did two other things:

1. Made everything POSIX-sh
2. Added an example of testing via cram (`test/base.t`)

My main questions for this PR are:

1. Is this better or worse than the existing organization?
2. Do you like the cram test better than Vagrant-based testing?
3. Is this worth finalizing and merging?