Better code analysis of methods to see when they are empty

Fixes #492
Removing unnecessary check on token key
Save token_name call
Inline isMethodEmpty call
Missing type hints
Guard against errors with internal types
CS in default argument
HHVM support
Merge pull request #496 from ciaranmcnulty/bugfix-pending-specs

Better code analysis of methods to see when they are empty