Use check_symbol_exists() instead of check_function_exists().

This is mostly a revert of 477031c03b2c525b117fae8a9b61c98245a06908.
Now that we are not setting `CMAKE_C_FLAGS`, the check can work
correctly and it helps `pcc` (portable c compiler) make it further
along--though it still doesn't produce usable results (see #427 for the
details).
Force travis build failure when some test fails
check readonly by trying to open the file for writing...

 instead of mch_access, to avoid a possible race condition
move check_file_readonly() into /src/os/fs.c and rename it
move filewritable() into /src/os/fs.c and rename it
remove mch_access macro as it is only used in fs.c
cleaned up the readonly check in readfile()
added doxygen documentation for os_file_is_{readonly, writable}
Make FPC_* defines an enum type in path.h.
Move gettail_dir more closely to its usage.
Add os_stat to os/fs module.
Refactor fullpathcmp -> path_full_compare.
Test and refactor gettail -> path_tail.
Test and refactor gettail_sep -> path_tail_with_seperator.
Test and refactor getnextcomp -> path_next_component.
Fix seperator->separator, path_tail_with_separator->path_tail_with_sep.
Initialize on declaration; use postincrements.
Rename FPC_* constants.
Remove support for running interactive programs

This removes `mch_call_shell` code for feeding programs interactively. The
removed code was supporting interactive programs in the old GUI, but right now
we only have a terminal UI.

The code is currently safe to remove because interactive programs will just
simply take control of the terminal in cooked mode.
Remove `:shell` and `suspend_shell`

Issue #450 contains more details