Updated prompt, tests, and docs to show that USERNAME_FIELD supports FK after 9bc2d76.

Refactored code to allow overriding for custom behaviour.

Thanks Chris Jerdonek and Tim Graham for review.