Bug fix listtransactions from/count handling.
Toggle main window hide on tray icon click

- converted openBictoinAction to toggleHideAction
- put GUIUtil functions into a namespace instead of a class
- put window-related functions together in optionsdialog

Reasoning:
- toggle is more typical behaviour
- it's more functional
- better UX

The typical issue with toggling visibility is that when a window
is obscured by other windows but in the 'shown' state, hiding it
isn't what you want. I've added an 'isObscured' function to GUIUtil
that checks several pixels in the window to see if they are visible
on the desktop so that an obscured but shown window can be raised.

Conflicts:

	src/qt/guiutil.cpp
	src/qt/guiutil.h
Use filesystem::path instead of manual string tinkering

Where possible, use boost::filesystem::path instead of std::string or
char* for filenames. This avoids a lot of manual string tinkering, in
favor of path::operator/.

GetDataDir is also reworked significantly, it now only keeps two cached
directory names (the network-specific data dir, and the root data dir),
which are decided through a parameter instead of pre-initialized global
variables.

Finally, remove the "upgrade from 0.1.5" case where a debug.log in the
current directory has to be removed.
Merge pull request #1072 from sipa/boostpaths

Use filesystem::path instead of manual string tinkering
Merge pull request #855 from sje397/ToggleHide

Toggle UI hide
Fix OSX build errors.
BIP 0031: pong message

Add a pong message that is sent in reply to a ping. It echoes back a nonce
field that is now added to the ping message. Send a nonce of zero in ping
messages.

Original author: Mike Hearn @ Google

Modified Mike's change to introduce a mild form of protocol documentation in
version.h.
version.h: separate client, net sections.  Move more constants to this file.

* move PROTOCOL_VERSION to version.h

* move CLIENT_VERSION* to version.h, make available past cpp stage

* clearly separate client, network version portions of version.h
Remove obsolete Win32 AffinityBugWorkaround()

Reference miner exists for testnet-in-a-box type situations, and as a
reference.  We don't care enough about highly optimized internal
mining to keep workarounds like this.
fixed amount part of URI in QR-Codes / removed (no label) string if we have NO label / coding style updates / removed an unused variable
updated to reflect pull-request suggestions / renamed some GUI elements
limit length of generated URI to 255 chars to prevent a DoS against the QR-Code dialog
enable wordWrap on lblQRCode / small code comment change
Merge pull request #1078 from Diapolo/QR-Code

QR-Code code update

Fixes problems reported on forum: https://bitcointalk.org/index.php?topic=73695.msg839804#msg839804
make text in about box selectable (fixes #1055)
Merge pull request #1041 from gavinandresen/listtransactionsfix

Bug fix listtransactions from/count handling.
CBitcoinSecret::SetString() now calls IsValid() to make sure it was passed something with the correct version.
Replace several network protocol version numbers with named constants
stored in version.h.

Also, a minor CAddress code reformat while we're in there, fixing
some incorrect indentation.
Fix #1086: add /testnet to passed datadir
Merge pull request #1087 from sipa/fix_1086

Fix #1086: add /testnet to passed datadir