RPC command getmininginfo showing right genproclimit
build: improve missing boost error reporting
doc: Add note about memory reqs for compilation
qt: Don't require db_cxx.h when wallet disabled

Fix #3978.
Add sighash tests from data file
Add code generating data/sighash.json test data
Add application category for OSX

In "View by Category" without this metadata the app gets sorted into "Other" at the bottom.
add checks for deserialization errors
Merge pull request #3988

1204945 Add application category for OSX (duanemoody)
Merge pull request #3975

81bfb5a add checks for deserialization errors (Manuel Araoz)
232aa9e Add code generating data/sighash.json test data (Manuel Araoz)
43cb418 Add sighash tests from data file (Manuel Araoz)
[Qt] small cleanup of coincontroldialog

- use a little more Qt-style
- check for NULL pointers first and return in updateView()
- small space and formating changes
Merge pull request #3991

d34b958 [Qt] small cleanup of coincontroldialog (Philip Kaufmann)
Merge pull request #3986

65adc3a qt: Don't require db_cxx.h when wallet disabled (Wladimir J. van der Laan)
4babd08 doc: Add note about memory reqs for compilation (Wladimir J. van der Laan)
25333a2 build: improve missing boost error reporting (Wladimir J. van der Laan)
Merge pull request #3931

f61287c RPC command getmininginfo showing right genproclimit (Isidoro Ghezzi)
Have pull-tester run the listtransactions.py regression test

This should show how to run a python-based regression test
successfully in the pull-tester environment.
Save/restore the memory pool at shutdown/startup

Save the memory pool in a 'mempool.dat' file at shutdown, and
read it in at startup.
Allow multiple regression tests to run at once

Choose ports at startup based on PID, so multiple regression tests
can run on the same system at the same time.
Have pull-tester run listtransactions/mempool_save tests
estimatefee / estimatepriority RPC methods

New RPC methods: return an estimate of the fee (or priority) a
transaction needs to be likely to confirm in a given number of
blocks.

Mike Hearn created the first version of this method for estimating fees.
It works as follows:

For transactions that took 1 to N (I picked N=25) blocks to confirm,
keep N buckets with at most 100 entries in each recording the
fees-per-kilobyte paid by those transactions.

(separate buckets are kept for transactions that confirmed because
they are high-priority)

The buckets are filled as blocks are found, and are saved/restored
as part of the mempool.dat file.

A few variations on Mike's initial scheme:

To estimate the fee needed for a transaction to confirm in X buckets,
all of the samples in all of the buckets are used and a median of
all of the data is used to make the estimate. For example, imagine
25 buckets each containing the full 100 entries. Those 2,500 samples
are sorted, and the estimate of the fee needed to confirm in the very
next block is the 50'th-highest-fee-entry in that sorted list; the
estimate of the fee needed to confirm in the next two blocks is the
150'th-highest-fee-entry, etc.

That algorithm has the nice property that estimates of how much fee
you need to pay to get confirmed in block N will always be greater
than or equal to the estimate for block N+1. It would clearly be wrong
to say "pay 11 uBTC and you'll get confirmed in 3 blocks, but pay
12 uBTC and it will take LONGER".

A single block will not contribute more than 10 entries to any one
bucket, so a single miner and a large block cannot overwhelm
the estimates.