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.
Add anaphoric if statement
Add ap-if docs.
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.
contrib/anaphoric: More anaphoric macros added

* hy/contrib/anaphoric.hy: The following anaphoric macros have been
  added
  `ap-reject` : Opposite of ap-filter, yields the elements when a `pred`
  evaluates to false
  `ap-dotimes` : Execute body forms (possibly for side-effects) n times
  with `it` bound from 0 to n-1
  `ap-first` : return the first element that passes predicate
  `ap-last`  : return the last element that passes predicate
  `ap-reduce`: anaphoric form of reduce that allows `acc` and `it` to
  create a function that is applied over the list

* docs/contrib/anaphoric.rst: updated docs to reflect these changes

* tests/__init__.py: updated to explicitly include tests for anaphoric
  macros
Merge branch 'master' into paultag/ana/if

Conflicts:
	hy/contrib/anaphoric.hy
Merge branch 'paultag/ana/if' of github.com:paultag/hy into paultag/ana/if
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
Merge pull request #371 from paultag/paultag/feature/profile

Add profile macro.
Reflect parameters of code.InteractiveConsele in HyREPL in order to make hy run inside Blender.
Add Kenan Bölükbaşı to AUTHORS.