Change precedence of $ operator

$$foo['bar'] is now interpreted as ${$foo}['bar'] rather than
${$foo['bar']}.
Temporarily disable complex variables in new expressions
Get rid of base_variable_with_function_calls
Use recursion for property fetches
LTR static member access
Recursive definition for object proprety fetches
Make function calls directly callable
Remove reference_variable indirection
Reintroduce new expression dereferencing
Cleanup old grammar rules
Minor cleanup
Generalize expression dereferencing
Integrate combined scalar as dereferencable
Allow arrays + object access for new expressions
Update two tests with new semantics
Update another test
Remove object_stack (mostly)
Remove now unnecessary code in begin_method_call
Generalize static access syntax
Add two initial tests