Added support for template type var declaration

Basic support for variable and typedef that uses template declaration is
added with this submission.
Multiple bug fixes:
 - Template instantiation was not getting parsed correctly.
 - Data member access was not getting parsed.
 - Member function call was not getting parsed. Needed to specify precedence of . and -> operators.
 - Pure virtual function with const attribute was not getting parsed.
 - Virtual dtor was not getting parsed.
Expression involving array was not getting parsed.
Minor change: added some utility methods.