All blocks can be single-line now. Also, oops fix for do...while.

do...while has been broken since first introduced: It was jumping back to the
top on the opposite condition. This was never found because there's no test
for it.

Merged multi-line block handling into a function, and that's now used by the
main non-if blocks (do...while, while, and for..in) to handle the multi-line
case. The single-line case is basic though (just statement(parser, 0)).

I also reworked some of the handler comments in parser, one of which was
rather redundant.
EX_CONDITION now gone in favor of lily_emit_eval_condition.

lily_emit_eval_condition replaces lily_emit_conditional. This improved
function now takes the ast pool, allowing it to clear the ast when it is done.
I wish I had thought to do this a long time ago, because I know I had bugs
before from the ast not being cleared after emit.

Anyway, while now uses lily_emit_eval_condition to handle the conditional
block. I did that because I realized the pattern it was using was exactly what
lily_emit_eval_condition does.
Parser: Fix damage caused by recent commits. Oops.
Parser: i{n,s}_multiline -> multi

Some of the handler functions had is_multiline, others had in_multiline,
resulting in a bit of confusion. This eliminates any possible confusion.
lily_eval_do_while_expr -> lily_emit_eval_do_while_expr.

This now takes the ast pool and clears it when done. Additionally, I've moved
the eval-ing functions in lily_emitter.h away from the non-emitting ones.
Parser: expression no longer takes flags. Emitter: Clear ast after eval.

The parser was adjusted a bit so that it no longer needs EX_SAVE_AST or
EX_NEED_VALUE. This was done by making a declaration list's = push the var and
the assign op, since that was the only time a value wasn't needed.

EX_SAVE_AST was removed by making expression no longer auto-emit, and instead
leave that job to the caller. All blocks needed to save the ast. The only two
cases where it didn't need to be saved were standard expressions via
statement, and the declaration list's =.

I fixed all of the emitter's functions that evaluate asts to have
lily_emit_eval_* as their name, then clear the ast pool for the next
expression.
Parser: Use CLS_VALID_HASH_KEY to determine valid hash keys.
Remove dead code, stick lily_try_new_function_val in the right place.
vm: Remove comment that shouldn't have been committed.
Remove all trailing whitespace.
Prune useless #includes/replace with simpler #includes.