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
Merge branch 'master' of github.com:JuliaLang/julia into call_overload

Conflicts:
	base/base.jl
	test/core.jl
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
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.
fix keyword args in constructors-via-`call`

REPL now works with sys0.ji
carefully arrange `call` methods in Core not to get specialized on types in Base

this allows the full build to go through
remove unsupported use of chained type parameters
fix constructor method sort order by preserving typevar bounds in the generated `call` methods
my last trick for constructor+call+keywordargs didn't quite work; fix it
make rational arithmetic use checked ops