Build: Change Greenplum main version from 5.0 to 4.3

Jira: PIVOTAL-88

Changed the default version used for the Greenplum main development
branch (and supporting dev branches) to 4.3. Also changed the current
MADlib version to 0.6dev
Build System: Change malformed PGXN version string.

Jira: MADLIB-761

It turned out PGXN version string should be x.y.z{modifier} and we missed
z.  This might be applied to v0.5 branch, but we keep it only in master
for now.
transport UDFs written in PL/C based on the MADLib C++ abstraction layer
add/remove/modify some UDFs
revise the main sql in plda_train and plda_predict
modifies some UDFs for better efficiency
add parameter checking in the internal UDFs
remove the iter_num parameter in plda_predict
revision based on the internal code review within the beijing team
key features of this implementation:
* Process with one document instead of one word each time to reduce UDF calls
* Iterate within the UDF to avoid function call overhead in the prediction
process
* Use the fcinfo->flinfo->fn_extra to transfer the word_topic and corpus_topic
accross the calls
* Arrange the input data in a special way to reduce the data redistribution
overhead
remove the first value trick as the seq scan cannot guaranteer any order
remove the distid technique as it is no longer necessary
remove some auxiliary functions
make the utils "private"
revise APIs and implementation for better efficiency
update the documentation and some minor revisions
Remove the Makefile
Found an incompatibility issue between postgres and greenplum and propose a
solution to fix the problem
- postgres cannot handle NULL parameter properly with construct_array and
  construct_md_array
correct two typos
Revise newplda.cpp and update some comments
A full join of the work table and the model table will generate a huge amount
of data, which will slow down the iterations very significantly (about 10
times). The distid and first_value design get back and the PARTITION BY AND
ORDER BY mechanism of the window function is applied to ensure that the joined
records are returned as the first record in each segment, as the database
provides no guaranteer to the order of a table scan.
Use the "ORDER BY distid, docid" and "min(docid) GROUP BY distid" to replace
the "PARTITION BY distid ORDER BY docid" for better efficiency
some minor revisions
remove AnyType::getFCInfo()
refer to https://github.com/madlib/madlib/pull/291 for related discussions
remove AnyType::getFCInfo() and AnyType::getSysInfo()
add a temporary workaround for UDF to get/set user_fctx
modify gibbs sampling method based on these changes
revise parameter checking codes for consistency with madmark