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

This code is heavily, *heavily* based off of Guillermo Vaya
(willyfrog)'s work (#295) ... instead of defining its own keyword arg though, it
uses the "standard" :kwarg type, which is the main difference from
willyfrog's original branch.
Would this be more efficient if we raised the ```with_kwargs``` clause into its own branch? The thought being that we're going to test this clause on every iteration regardless of whether we're compiling an ```ast.Call``` node.