CLJS-654: Quit repljs on ^D, don't loop on nil

Previously, entering either nil or ^D at repljs would cause the
REPL to go into an infinite loop of printing nil. Evaluating
nil will now evaluate it once and then stop to read from stdin.
^D will quit out of the REPL.
CLJS-627: Add warnings on function arity problems

This patch adds three new warning types that may be thrown when
defining a function.

:multiple-variadic-overloads : Can't have more than 1 variadic overload
:variadic-max-arity : Can't have fixed arity with more params than
variadic
:overload-arity : Can't have 2 overloads with the same arity
CLJS-657: Remove duplicated warning method