safely remove output_file, which may not exist

For example, in clang-425.0.28 (what Apple ships as `cc` on OS X 10.7),
a failed compilation does not generate an output file. But in
clang-503.0.40 (OS X 10.9), it does create a zero-sized output file.
test for existance of output_file before remove
Merge pull request #157 from maverickwoo/master

safely remove output_file, which may not exist
Split out the types representing C code.
Remove unused 'env' parameter from C code printing functions.
Split out C pretty printing into a separate module.
Treat reading from a global variable as an effect.
Remove unused function.
Remove access to invalidated callspec pointer.
Merge pull request #160 from yallop/callspec-pointer-invalidation

Remove access to invalidated callspec pointer.
Add ocamlfind package flags to cmx/cmi make rules.
Pass both '-package thread' and '-thread'.
Introduce a direct-mapping type for `bytes'.
Introduce a direct-mapping type for `bytes'.
Add ocaml_bytes_start implementation.
Type printing for the bytes type.
Merge branch 'whitequark-bytes' of github.com:yallop/ocaml-ctypes into whitequark-bytes