Raise invalid method calls and deal with blocks.

Block scoping is a bit odd since parser builds method calls with a block as
(block (send ...)) instead of (send ... (block)). This would lead to method
calls being performed in the scope of the block instead of the right one.

Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>