Speed up double creation with multiple attributes by caching caller.

Benchmark results for creating a double with n attributes:

     n | before | after
    ---+--------+-------
     0 | 0.01   | 0.04
     1 | 0.11   | 0.11
     2 | 0.24   | 0.16
     3 | 0.39   | 0.22
     4 | 0.62   | 0.29
     5 | 0.88   | 0.35
     6 | 1.34   | 0.51
     7 | 1.77   | 0.51
     8 | 2.59   | 0.72
     9 | 3.33   | 0.84
Extract constant ArgumentListMatcher::MATCH_ALL.

As well as being semantically clearer, this gives a modest speed up
(~5%) when creating doubles with multiple attributes.
Introduce "simple" stub as an optimization over using a normal stub.

This provides a decent speed improvement when creating doubles with
multiple attributes:

     n | before | after
    ---+--------+-------
     0 | 0.04   | 0.04
     1 | 0.09   | 0.08
     2 | 0.17   | 0.12
     3 | 0.20   | 0.16
     4 | 0.26   | 0.18
     5 | 0.32   | 0.23
     6 | 0.40   | 0.29
     7 | 0.55   | 0.40
     8 | 0.65   | 0.40
     9 | 0.78   | 0.46
Extract CleanCaller class to unify caller manipulation.
Add benchmark script.
Changelog entry covering all double performance enhancements.