Use the clang 3.4 release tarball instead of apt for clang 3.4.

It appears the llvm.org/apt/ repository isn't always reliable.  So let's
use the release tarball instead.  Also, make using 3.4 conditional, so
we can use the clang 3.3 if things still manage to go awry in the
future.  Note: using 3.3 means that we won't get leak detection.

I left the logic for using llvm.org/apt/, just in case we want try using
it again sometime.
Force the `cmake` target to re-run the CMake configuration.

This makes it more handy when files are added or removed from the source
tree.  A simple `make cmake` will re-configure and pick up the change.
Split code for counting and parsing arguments
Extract `shell_skip_word` from `mch_call_shell`
Extract `shell_count_argc` from `mch_call_shell`
Make `extra_shell_arg` a `mch_call_shell` parameter
Extract `shell_build_argv` from `mch_call_shell`
Refactor/cleanup argument parsing functions
Refactor SHELL_* defines into enum typedef

The SHELL_* defines are the bitflags that can be passed to `mch_call_shell`.
The enum is defined in 'os/shell.h', where all shell-related functions will
eventually be defined.
Update `call_shell` signature to use `ShellOpts`
Rewrite `show_shell_mess` as a `ShellOpts` flag