build: Switch to non-recursive make

Build logic moves from individual Makefile.am's to include files, which
the main src/Makefile.am includes. This avoids having to manage a gigantic
single Makefile.

TODO: Move the rules from the old Makefile.include to where they actually
belong and nuke the old file.
build: delete old Makefile.am's
build: add stub makefiles for easier subdir builds
build: nuke Makefile.include from orbit

Rules and targets no longer need to be shared between subdirectories, so
this is no longer needed.
build: Tidy up file generation output

- Some file generation was still noisy, silence it.
- AM_V_GEN is used rather than @ so that 'make V=1' works as intended
- Cut down on file copies and moves when using sed, use pipes instead
- Avoid the use of top_ and abs_ dirs where possible
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)