Simplify paths under the build directory in gnu toolset output.

Instead of using @top_srcdir/$(builddir)/$(subdir) everywhere, which resulted
in complex paths when the bakefile itself wasn't in the top_srcdir, use a
helper _builddir make variable defined only once.

In addition to making the generated makefiles shorter and simpler, this also
allows to use just "make target" with them instead of having to explicitly use
something like "make ../build/target" even when builddir was not set.

Finally, as an extra bonus, defining the helper variable allows us to create
the build directory automatically, while it had to be done manually before
building before.
Don't generate builddir definition in GNU makefiles unnecessarily.

This is not needed in top-level makefiles which don't build anything
themselves.