coro_yield() should return a value passed by coro_resume()

This is similar in change to what happened with Python's yield keyword,
when it moved from a statement to an expression. This allows for some
more advanced control, such as resuming a coroutine only once if it is
being used as a generator function.
Support for empty lists/variables block.

Syntax is similar to Mustache, but slightly different:

	{{^#some_list}}
		Content when some_list is empty.
	{{/some_list}}

	{{^some_variable?}}
		Content when some_variable is empty.
	{{/some_variable}

To avoid having two blocks (one for non-empty values, and other for
empty values), we might introduce an `else` block. File listing
currently opens the directory twice because of this.

Part of #49.