Add record information in a type annotation

This will be useful in the future for dialyzer.
Add include path handling and file name information

This is been done with a compiler info record containing file name,
include path and options. The info is passed to all compiler modules
so lfe_macro_include has the include path and lfe_codegen now has the
source file name.

The interface to lfe_lint has changed slightly for lfe_shell and
lfescript.
Don't import map as it is now a core form for map handling

Also fixed some small bugs im simple-erl-exercises.lfe.
Fix lfe and lfescript and add new options to lfec

Also fixed up lfeexec.c, which we don't use yet.
Fix handling of script name for run_string
Add function_name annotation to c_primop for function case

This is what is needed to get the erlang compiler to generate a
function_clause error, even if we specifically write function_clause
error. Go figure.
Fix handling of BIFs when linting and in environment
Output filename in all calls

Dialyzer needs this when reporting bad types in function calls.