build: avoid the use of top_ and abs_ dir paths

Using them has the side effect of confusing the dependency-tracking logic.
build: quit abusing AM_CPPFLAGS

Now that the build is non-recursive, adding to AM_CPPFLAGS means adding to
_all_ cppflags.

Logical groups of includes have been added instead, and are used individually
by various targets.
build: fix version dependency
Merge pull request #4241

efe6888 build: fix version dependency (Cory Fields)
f4d8112 build: quit abusing AM_CPPFLAGS (Cory Fields)
56c157d build: avoid the use of top_ and abs_ dir paths (Cory Fields)
70c71c5 build: Tidy up file generation output (Cory Fields)
6b9f0d5 build: nuke Makefile.include from orbit (Cory Fields)
8b09ef7 build: add stub makefiles for easier subdir builds (Cory Fields)
be4e9ae build: delete old Makefile.am's (Cory Fields)
65e8ba4 build: Switch to non-recursive make (Cory Fields)
qt: PeerTableModel: Fix potential deadlock. #4296
Merge pull request #4297

b917555 qt: PeerTableModel: Fix potential deadlock. #4296 (Ashley Holman)
Type-safe CFeeRate class

Use CFeeRate instead of an int64_t for quantities that are
fee-per-size.

Helps prevent unit-conversion mismatches between the wallet,
relaying, and mining code.
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.
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
in a new fee_estiamtes.dat file in the data directory.

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.
Merge pull request #3959

171ca77 estimatefee / estimatepriority RPC methods (Gavin Andresen)
0193fb8 Allow multiple regression tests to run at once (Gavin Andresen)
c6cb21d Type-safe CFeeRate class (Gavin Andresen)
Merge pull request #4295

6e7c4d1 gitian: upgrade OpenSSL to 1.0.1h (Wladimir J. van der Laan)
qt: Periodic translation update
[Qt] Improve rpc console history behavior
Fix compiler warnings

Fixes the following compiler warning

```
miner.cpp: In constructor ‘COrphan::COrphan(const CTransaction*)’:
miner.cpp:69:14: warning: ‘COrphan::feeRate’ will be initialized after [-Wreorder]
     CFeeRate feeRate;
              ^
miner.cpp:68:12: warning:   ‘double COrphan::dPriority’ [-Wreorder]
     double dPriority;
            ^
miner.cpp:71:5: warning:   when initialized here [-Wreorder]
     COrphan(const CTransaction* ptxIn) : ptx(ptxIn), feeRate(0), dPriority(0)
```
Merge pull request #4304

02bec4b Fix compiler warnings (Drak)
[Qt] Remove CENT-fee-rule from coin control completely
Update translation_process.md

Qt changed to Bitcoin Core
Merge pull request #4307

16be392 Update translation_process.md (sandakersmann)
Move checkpoint based heuristic checks to AcceptBlockHeader
Get rid of the static chainMostWork (optimization)