7013: Impl. User.prompt based on QuestionDialog2

Implemented prompt method, changed signature
to match QuestionDialog2.__init__

Refactored existing code in User classes:
common __init__ code and User.callback pulled up to gen.user

Aligned gui and cli to use stderr for spinner and
progress printouts

For testability, self._fileout attr is used instead
of hardwired stderr/stdout, this is
    add gui test (empty for now)

The new code (prompt) is not excercised anywhere but
in the unit tests yet, this is preparation work for other
items in bug #5598

git-svn-id: svn+ssh://svn.code.sf.net/p/gramps/code/trunk@22914 4ae1f11a-8b86-4847-b8af-ab372f36d1fd