Define kwapply as a macro
Define apply if python3
Added apply tests
Make apply api-compatible with python (args is not mandatory)
Allow calling kwapply with mixed names and dicts
Bootstrap a macro error-reporting test file
language.hy whitespace fix
removed unnecessary import
Adding olasd's improvements
Operators + and * work without args, fixes #372

Like other lisps, operators `+` and `*` return their identity values
when called with no arguments. Also with a single operand they return
the operand.

This fixes #372
Merge branch 'fix/arith-identity' of https://github.com/theanalyst/hy into theanalyst-fix/arith-identity
Merge branch 'kwapply-macro' of https://github.com/Willyfrog/hy into Willyfrog-kwapply-macro

Conflicts:
	hy/core/language.hy
	hy/core/macros.hy
	tests/native_tests/language.hy
Whitespace fix
Hy reader macros #377

Added first iteration of reader macros
Refactored defmacro and defreader
Added test inn hy/tests/lex/test_lex.py
Added new test in hy/tests/native/tests
Added new test in hy/tests/macros.

changed the error given in the dispatch macro and added some handling for missing symbol and invalid characters