Fix dereferencing of variables that reference other variables.
Fix dereferencing of variables that reference other variables.

The dereference function did not properly dereference variables that
pointed at other variables.  The result is a confusing error where
operators (such as +) would error saying the expected type was not
correct, despite reporting the correct type (type information was fully
dereferencing).

Example:
$foo = 1
$bar = $foo
notice $bar + 1

This would report an error at "$bar + 1" saying the expected Numeric but
found Integer.

This fix recurses the dereferencing until no longer a variable.

iankronquist/puppetcpp,peterhuene/puppetcpp