cover now relies on the compile info to find file sources

Prior to this commit, cover relied on a simple heuristic that
traverses directory from the beam file to find a source file.
The heuristic was maintained with this patch but, if it fails,
it fallbacks to the source value in the module compile info.

In order to illustrate how it works, one of the tests that
could not find its source now passes successfully (showing the
source lookup is more robust).
Ensure cover keeps the proper file source

Whenever a module is compiled via compile:forms/2,
the source is set to current directory unless a source
option is passed to compile. This commit ensures that
cover passes the source information to compile:forms/2
to ensure the source won't be modified after the module
is cover compiled.
Fix a bug in cover when used with no_auto_import

Cover was rewriting guard clauses as non-remote calls.
That said, if a guard contains erlang:is_binary(Binary),
Cover was incorrectly removing the erlang prefix which
lead to errors if is_binary is not auto imported.

This commit keeps the abstract format as it is.
Merge branch 'dg/win_icon' into master-pu
Merge branch 'dw/crypto-hmac-enhancements' into master-pu
Merge branch 'fdm/windows_file_share_delete' into master-pu
Merge branch 'lf/snmp-tuple-fun' into master-pu
Merge branch 'lf/snmpm_user_default' into master-pu
Merge branch 'nox/promote-inline_list_funcs' into master-pu
Merge branch 'jd/file-ram-opt-doc' into master-pu
Merge branch 'avi/fix-os-cmd-win' into master-pu
Merge branch 'pn/ansi-console' into master-pu
Merge branch 'ta/werror-return-type' into master-pu
Merge branch 'sa/dialyzer-record-field-type' into master-pu
Merge branch 'id/snmp_optimization' into master-pu
Merge branch 'nox/rm-reverse-eta-conversion' into master-pu
Merge branch 'sk/odbc64' into master-pu
Merge branch 'fdm/fix_file_driver_memory_leak' into master-pu
Merge branch 'ks/kernel-cleanup' into master-pu
Merge branch 'ks/ssl-fix-most-unmatched_returns' into master-pu

Conflicts:
	lib/ssl/src/ssl_connection.erl