gpsegwalrep.py: Add rebuild operation
gpsegwalrep.py: Add rebuild operation

`rebuild` is different from `recoverfull`. It will create new directory
for the new mirror with new port for given content id.

`recoverfull` on the other hand will just recover all the failed mirrors
using existing information in gp_segment_configuration.

The both use basebackup to build the mirror.

We reduce port increment to avoid over the port limit after multiple
rebuild.

Author: Xin Zhang <80ac6425c128040c27b3c6077c824bc26222f5e7@pivotal.io>
Author: Asim R P <24f343109504afa210657d296a0873118cbd2b97@pivotal.io>

greenplum-db/gpdb,ashwinstar/gpdb,xinzweb/gpdb,50wu/gpdb,50wu/gpdb,xinzweb/gpdb,50wu/gpdb,ashwinstar/gpdb,jmcatamney/gpdb,Chibin/gpdb,Chibin/gpdb,lisakowen/gpdb,lisakowen/gpdb,lisakowen/gpdb,adam8157/gpdb,adam8157/gpdb,Chibin/gpdb,adam8157/gpdb,ashwinstar/gpdb,Chibin/gpdb,jmcatamney/gpdb,xinzweb/gpdb,Chibin/gpdb,greenplum-db/gpdb,adam8157/gpdb,ashwinstar/gpdb,greenplum-db/gpdb,lisakowen/gpdb,lisakowen/gpdb,50wu/gpdb,adam8157/gpdb,xinzweb/gpdb,ashwinstar/gpdb,lisakowen/gpdb,adam8157/gpdb,ashwinstar/gpdb,greenplum-db/gpdb,Chibin/gpdb,jmcatamney/gpdb,greenplum-db/gpdb,xinzweb/gpdb,jmcatamney/gpdb,xinzweb/gpdb,jmcatamney/gpdb,greenplum-db/gpdb,Chibin/gpdb,Chibin/gpdb,50wu/gpdb,adam8157/gpdb,Chibin/gpdb,ashwinstar/gpdb,jmcatamney/gpdb,greenplum-db/gpdb,adam8157/gpdb,ashwinstar/gpdb,lisakowen/gpdb,greenplum-db/gpdb,jmcatamney/gpdb,Chibin/gpdb,xinzweb/gpdb,50wu/gpdb,50wu/gpdb,lisakowen/gpdb,50wu/gpdb,jmcatamney/gpdb,xinzweb/gpdb