Rename `setterFn` to `factoryFn` in tests.
Allow the `factory` function to be configured on the constructor.

An override `factory` function is still accepted by `get()` in order to allow for custom promise generation on a per-call basis.