initial implementation of call overloading: f(x...) gets turned into call(f, x...) as a fallback (if f is not a function); to do: update inference, fallback to call when f is a type
make sure call passes through keywords
fix call overloading for type constructors, add some tests
support generic call in apply(f, ...)
(broken) patch to eliminate emit_func_check
get basic call overloading working with 1 bootstrap stage
Merge branch 'master' into call_overload

Conflicts:
	src/codegen.cpp
	test/core.jl
update emit_call for jl_fptr_llvmt => jl_pfptr_llvmt change
restructure dump.c slightly to make it more flexible
Merge branch 'master' of github.com:JuliaLang/julia into call_overload

Conflicts:
	base/base.jl
	test/core.jl
WIP: progress towards serializing/deserializing a single module at a time
some work on call overloading

- look up call in the right module instead of using jl_call_func
- some inference support for call overloading
- pass `call` to _apply and kwcall so they use the containing module's definition
- deprecate explicit apply(), rename the builtin to _apply
Merge branch 'master' of github.com:JuliaLang/julia into call_overload

Conflicts:
	base/deprecated.jl
	base/inference.jl
fix codegen for changes to apply() for call overloading
temporarily restore inference/startup performance
WIP: add support for forward value references in the backref table
WIP: rehash affected method tables due to datatype->uid changes after restoring
replace itrunc(Uint8, 1234) => mod(1234, Uint8), etc. [fix #8646]
Improving comments to clarify how indentation works.
fully redesign constructors to use `call` overloading

this does not work yet, but gets past the first bootstrap stage.

so far this is a significant net simplification.