Implement keyword argument passing... (foo-func 1 2 :kw1 "bar") works!

This code is heavily, *heavily* based off of Guillermo Vaya
(willyfrog)'s work... instead of defining its own keyword arg though, it
uses the "standard" :kwarg type, which is the main difference from
willyfrog's original branch.

Included tests and some documentation in the tutorial.

Also documented "apply" separately as an example of reproducing
*args and **kwargs.
Dashes!  Dashes everywhere!  ... in the tutorial

The tutorial used underscores in Hy code everywhere.

Updated all examples to use dashes, as per Hy convention.
paultag likes iter(exprs) better than exprs.__iter__()

We do what the BDFL says lest he shoot us with magic wizard sticks.
Removing trailing whitespace from example