Merged GetSubContext into GetCurrentInstruction

GetSubContext was way to simplistic without help of syntax provided help
in call chains and there were no reason to have two different
kind of contexts. Improved handling of , and ( that were previously
handled by GetSubContext
Make completion for self::$ work

Previously a regexp was used to match the base of "$" but the special
meaning of $ would interfere where we only need simple substring match.
The tailing $ should also be removed even if there's no other letters
follow it in GetCurrentInstruction()
Make variable and function collecting more robust in CompleteUserClass

Previous regexps would collect non-property $a = 'foo' lines too
(only whitespace in front of it without any modifier).