Allow explicit naming of spies and stubs

Here's the implementation for #418 - a bit later than intended!

Took me a while to decide where to put the tests, but functionToString explicitly mentions displayName, so I figure it's reasonable to assert on it as part of the external interface of spy/stub.