add keys(EXPR) function

The keys function gets the keys of the HASH or ARRAY pointed to by EXPR.

This function returns an arrayref, but I'm not sure if that's the right
idea. We can flatten an arrayref using `keys() | .[]` I guess, so maybe
that's the right solution...

Fixes #27
add length( EXPR ) function

Tries to DWIM as much as possible, though I think numbers are going to
be a bit weird (will get the number of base-10 digits no matter what, I
suspect, but that's not a use-case I need right now).

I won't be doing a scalar() alias, but I might consider a count() alias.

Fixes #28
test and document the == and != operators
add <,<=,>,>= numeric comparison operators

Also clarify the behavior of undef in comparisons.  These allow warnings
if either side is undef. We should not suppress these warnings, though
we may have a way to ensure more robust coding in the future...

Fixes #30