Counting references and creating classes/modules.

When creating classes and modules the initial reference amount should be set to
1 so no warnings are added for them.

Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>
Update parent scopes inside blocks.

When overwriting a local variable in a block and said variable was initially
defined outside of the block it should also be updated outside of the block.

In code this means the following:

    number = 10

    [10, 20, 30].each do |n|
      number = n
    end

    puts number # => 30

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