Move GTM configuration APIs in src/gtm/common to new folder src/gtm/config

This is part of the effort to eliminate the duplications in GTM code with things
of PG src/backend. src/gtm/common had a dependency with the binary postgres when
it is built so this dependency with GTM configuration is unnecessary. Even if
GTM should rely on the APIs of guc-file.l for configuration file treatment, for
the time being this permits to split each functionality correctly.
Push LIMIT  clause to the datanode if the expressions in those
clauses are shippable and the underlying plan tree allows that.
In case there is only one datanode involved in the execution of the RemoteQuery,
we just push the clause to the datanode and no LIMIT and OFFSET processing is required at
the coordinator. But for distributed execution of RemoteQuery, we need LIMIT and
OFFSET processing at the coordinator.
If OFFSET clause is present, we do not push it, but include it in the LIMIT
clause and apply OFFSET at the coordinator.
Correct typos and add files of test xc_limit forgotten by last commit

The tests were added to parallel and serial schedules, but without files
regressions simply fail.
Add documentation for XC-specific query plan tuning options

Those options are usually used by applications developers to debug correctly
queries relying on the Postgres server framework like EXPLAIN output. In the
case of PG, all the planner-related parameters are documented and listed in
postgresql.conf. Surprisingly, it was not the case of XC-specific parameters
which are:
- enable_fast_query_shipping, to control FQS planner
- enable_remotejoin, to control remote join planning
- enable_remotegroup, to control remote GROUP BY planning
- enable_remotelimit, to control remote LIMIT planning
Like for PG parameters, all those parameters are enabled by default.
Documentation is also provided, and there corresponding entry is added to
postgresql.conf.
Refactor Makefile of GTM binaries and remove unnecessary build dependencies

All the Makefiles of src/gtm are changed to fit in a better way the Postgres
style used inside src/backend. It is now possible to invocate make directly
inside src/gtm/main or src/gtm/proxy to generate only the related binary. there
are not anymore annoying dependencies with the order folders have to be
compiled. Some strange dependencies are also fixed in this commit. A couple of
functions related only to GTM-Standby using structures defined in gtm/main were
located in src/gtm/recovery, which is also a folder GTM-Proxy has a dependency
to, so this was leading to unncessary dependencies with the GTM main and
GTM-proxy main messing up all the building process. Those GTM-only files are
moved to gtm/main to avoid such problems.
Prior to this commit, src/gtm was creating and installing a series of so
libraries that are indeed not necessary for the installation as they are only
server side features. It is not that difficult to reallow them but for the time
being it is better to keep a GTM installation as light as possible.
Move gtm_ctl from src/gtm to src/bin

Like initgtm, gtm_ctl is a wrapper helping to perform operations on GTM the
same way pg_ctl operates with PG servers, so it makes sense to move its code
there and clean at the same time a bit the GTM core code tree.
It is important to note that gtm_ctl has dependencies with GTM client libraries
as those functions are used for things like reconnection of a Proxy to a GTM.
Add object copy and object equal functions for queries exclusive to Postgres-XC

Support for the following queries is added:
- CREATE NODE
- ALTER NODE
- DROP NODE
- CREATE NODE GROUP
- DROP NODE GROUP
- CLEAN CONNECTION

With those things supported, it is possible to create cached plans for client
applications or drivers using prepared queries like JDBC.
Merge branch 'master' into gtmlibpq

Conflicts:
	src/backend/Makefile
	src/bin/Makefile
	src/bin/gtm_ctl/Makefile
	src/gtm/Makefile
	src/gtm/client/Makefile
	src/gtm/common/Makefile
	src/gtm/config/Makefile
	src/gtm/libpq/Makefile
	src/gtm/main/Makefile
	src/gtm/main/gtm_standby.c
	src/gtm/main/register_gtm.c
	src/gtm/path/Makefile
	src/gtm/proxy/Makefile
	src/gtm/recovery/Makefile
Fix client and common submodules
Correct some mistakes related to unexisting paths