implement a simple code coverage tool

To use the tool, pass --code-coverage. On exit, for each source file foo.jl for
which we have data, write foo.jl.cov next to the original file, with execution
counts in front of each line, or "-" if no data.

also start consolidating compiler options into a jl_compileropts struct
fix redundant first line count

switch line counters to internal linkage
Merge pull request #5423 from JuliaLang/jb/codecov

simple code coverage tool