**Bring executables into better shellcheck compliance**
While evaluating linting and testing options for our shell
configuration, a run of Shellcheck against our executables turned up
some places where we could use more consistent syntax across our
executables, such as always using a shebang or quoting `$HOME` when we
build up a larger directory.
**Update syntax for zsh functions and completions**
A few changes found while linting zsh configs with shellcheck:
* thoughtbot's [style guide] [guide] calls for `$(..)` over backticks
when capturing command output
* use `-gt` to test array length in arguments
[guide]: https://github.com/thoughtbot/guides/tree/master/best-practices
* Fixes an issue where tab completing specs that start with the same
words(s) makes tab completion freak out and stop working.
* The con is that we'll see "_spec.rb" in the output, like:
```zsh
$ rspec spec/models/
models/calendar_spec.rb
models/event_closer_spec.rb
...
```