hydiomatic.utils: Add support for walking cons forms

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
hydiomatic.macros: Simplify the defrules syntax

Instead of requiring every rule to either specify the list of fresh
LVars as its first argument, or have a single HyExpression within the
rule definition list, extract the used LVars automatically, and if the
rule definition is not a list, turn it into one without further
processing.

This means that rules can use ?x LVars, and these will automatically
be (fresh)'d, without the need to specifiy them up front. Also, rules
that need more work than this, can be specified bare, no need to wrap
them in a one-element list.

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>