make user whatsit generators accept an optional argument of type node
have ``new_user_whatsit()`` accept prototype as first argument
document alternate behavior of ``new_user_whatsit()``