make the "methods macros" more efficient

Instead of creating a seperate test for each method, this creates
a _single_ test for methods and accumulates each type of method
to test.  Then the single test iterates over the method types and
makes the appropriate assertion for each.

This will require an update to the assertion definition API in order
to get proper backtraces displaying in fails.  The `called_from` needs
to be specified on a per-assertion basis as each assertion now
has a different `called_from`.  I will address this in another PR.