Fix apply with method calls

Apply didn't work on method calls (i.e. `(apply .foo [bar]) broke).
This slipped through because there were no tests of this behavior. I noticed
it while trying to merge the `meth` fixes.
Only call macroexpand when needed

We only need to call macroexpand on HyExpressions,
as this is already guarded in macroexpand_1. This
saves us a few funcalls.
Merge branch 'olasd:feature/only-macroexpand-when-needed'
Merge pull request #391 from olasd/bugfix/apply-method-call

Fix apply with method calls
Add profiling macros