This is a grab-bag of commits designed to streamline the UI↔Core interface. It contains various small improvements as well as code cleanups:
Improvements:
- Allow other threads to queue shutdown in UI thread (functionality in case of bitcoind is unchanged). RPC stop and encryptwallet will now work with UI, and this also fixes segfault part of #999.
- update UI only when needed, instead of polling with a timer (core notifies UI using AddressBookRepaint / MainFrameRepaint functions)
- This fixes the issue with address created using RPC 'getnewaddress' not appearing in UI address book
- use a messagebox to display the error when -server is provided without providing rpcpassword, this doesn't get lost like a message to the console (functionality in case of bitcoind is unchanged)
- allow threads to request a modal dialog box for fatal errors, so that they can wait with shutting down until the user clicked OK (disk space error, etc)
Code cleanups:
- move QT_PLUGINS stuff to qt main file, where it belongs
- move dummy translation function _ to qtui.h/noui.h instead of util.h
- remove dependency for SecureString on serialize.h and util.h (and the rest of the knot of .h files) by moving allocators to new include file allocators.h
- remove broken and/or unnecessary functions from qtui.h/noui.h, clarify names, and leave only one MessageBox function that can be used both from AppInit2 and other threads
In principle, these commits are fairly independent and could be separate pull requests if necessary.