changes to thread code (directly use boost::thread)

- removes our NewThread() function an replaces remaining calls with
  boost::thread with our TraceThread template
- remove ExitThread() function
- fix THREAD_PRIORITY_ABOVE_NORMAL for non Windows OSes
Merge pull request #1863 from jgarzik/keytime

"Wallet birthdays": store key create time; calc whole-wallet birthday
Merge pull request #2553 from Diapolo/threads

changes to thread code (directly use boost::thread)
fix comment about dust logic
send tx relay flag with version
Added GNU/kFreeBSD kernel name (TARGET_OS)

uname -s returns "GNU/kFreeBSD" on Debian GNU/kFreeBSD port. See http://www.debian.org/ports/kfreebsd-gnu/
Remove broken option to skip input checking for wallet txn.
fixed: include boost header as necessary

Without this include, sometimes BOOST_VERSION was defined and sometimes
it was not, depending on which includes came before it. The result was a
random mix of sleep or sleep_for for boost versions >= 1.50.
fixed: don't use thread::sleep_for where it's known to be broken

Fixes #2690.
Update HomeBrew osx makefile patch to account for recent changes to makefile
Refactor fee rules to make them actually readable.

This (nearly) doesn't change fee rules at all:
 * To make it into the fee transaction area, the dPriority comparison
   changed from < to <=
 * We now just ignore transactions > MAX_BLOCK_SIZE/4 instead of
   doing some calculations to require increasingly large fees as
   size increases.
Merge pull request #2769 from TheBlueMatt/master

Remove broken option to skip input checking for wallet txn.
Merge pull request #2766 from theuni/fix-shutdown-deadlock

Fix shutdown deadlock, ticket #2690
Merge pull request #2648 from Diapolo/txindex

allow txindex to be removed and add a reindex dialog
qt: allow user to choose data directory

This adds an introduction screen that is shown when the client is first
started in which the user can choose a data directory.

It is also possible to force the intro screen to appear using command
line argument `-choosedatadir`.

The user is warned that the client will download and store 10Gb of data.
The intro screen shows how much space is available on the device that
contains the chosen directory and warns if this is less than the 10Gb.

To make it possible to translate the introduction dialog, the initialization
sequence is changed so that translations are
loaded before the data directory. This has the by-effect that it is
no longer possible to specify a language in bitcoin.conf inside the data
directory.
Markdown Cleanup - Part 2

Now everything is in markdown...
Merge pull request #2763 from bitsofproof/master

Send tx relay flag with version message
Merge pull request #2760 from cozz/cozz2

fix comment about dust logic
Move implementation of some CBlockLocator methods

Move out of main.h to improve compile times and add documentation
for what the methods do.
Introduce a CChainParameters singleton class and regtest mode.

The new class is accessed via the Params() method and holds
most things that vary between main, test and regtest networks.
The regtest mode has two purposes, one is to run the
bitcoind/bitcoinj comparison tool which compares two separate
implementations of the Bitcoin protocol looking for divergence.

The other is that when run, you get a local node which can mine
a single block instantly, which is highly convenient for testing
apps during development as there's no need to wait 10 minutes for
a block on the testnet.