Update the comment on the classify function.
Decision Trees: - Fix the non-ordered aggregate version of decision tree display.

In the current version, there is no tree ID in the result tree table.
Therefore, remove the related code.  Now, it can run successfully in
Postgres8.4 and series version.
Decision Trees: - C4.5 code refactoring and optimization.

The code changes include two main parts.
1. code reformatting, such as comments refinement, code style consistency, etc.

2. performance improvement.
2.1 continuous attribute optimization: Users can choose 1~n feature
values as the split value. This will not apply to C4.5 for now.
It will be used for RF.

2.2 The operation after found the best attributes will be done in parallel
except for the create child nodes (we sequentially generate the IDs for new
created child nodes).

2.3 Calculate the ACS set feature by feature.

An observed result of this optimization:

KDD dataset (4,898,431 rows), running on 24 segments with 3 hosts

Before: 00:19:30.403121.
After : 00:11:42.736067.
Add Daisy Zhe Wang and her students' work on Feature extration and Viterbi.

This module does not support Greenplum 4.0, where ordered aggregates nor
correlated sub-queries are not supported.  I'm committing this with a little
editorialization and compatibility code, while there are some TODOs all
around the code and comments.  We will improve them in the future work
to separate the original work and additional modifications.

Kun Li, Joir-dan Gumbs, reviewed by Caleb Welton and Hitoshi Harada.
Decision Trees: - Add TEMP keyword to auxiliary table.

MADLIB-481
Feature Extraction: - Fix compatibility code.

GP 4.1 test showed we never run array_agg, due to the typo in m4 macro.
Changed header-file patch for GP4.1 so that it will not fail in cases where it has already been applied.

Background: In GPDB development environments, the patch version may be reported as 0, even though the header file is based on a much newer patch version.
In these cases, the previous patch would fail. The new implementation uses 'sed' instead of 'patch'.
Madpack:
- Add -t option to specify cases to test. Usage: "-t module[,module[,...]]". This resolves MADLIB-482.

This option is effective only in install-check at the moment.
Support Random Forest.

Random Forest (RF) is an ensemble classifier that consists of multiple
decision trees (DTs) and outputs the class that is voted by the majority
of the individual trees.  A prominent advantage of RF is its unexcelled
accurary.  This is the main reason why we support RF in MADlib.  MADlib RF
is based on Leo Breiman and Adele Cutler’s RF algorithm and runs directly
within a database.

Our RF implementation is based on MADlib DT without error based pruning and
reduced error pruning.  But we add a parameter, named max_split_point, to
control how many feature values will be treated as split values.  Using this
approach, in most cases, the total time of training an RF can be decreased
a lot.

MADLIB-419
Random Forest: - Fxi minor document issues.
Feature Extraction: - Improvement per review and test.

This rearranges assorted code that was making it inconvenient from user
perspective.  viterbi_mtbl and viterbi_rtbl are now created inside
text_feature_extraction() and index is created at the same time.
viterbi_mtbl was hard-coded in text_feature_extraction(), and now
it accepts argument.  vcrf_label() took an argument for a schema name
but it didn't use it in a good way, so now the argument is deprecated.
Also some tables in the install_test() that seemed to not be used are
removed entirely from the source.
Decision Trees and Random Forest: rename files

Extract common code for c4.5 and random forest, and perform file renaming.
The changes are:

- Change the module's name to 'cart' from 'decision_tree'.  We will add
  regression tree's function to this module.
- Change the name of 'utility.sql_in' to 'dt_utility.sql_in'.
- Change the name of 'decision_tree.c' to 'dt.c'.
- Separate the file of 'decision_tree.sql_in' into two files, namely
  'dt.sql_in' and 'c45.sql_in'.  The first file contains the common
  functions shared by c4.5 and random forest. The second file contains
  the c4.5 APIs.
Decision Tree: Add check for the parameter max_tree_depth.

MADLIB-488
Decision Tree: Replace overlooked constant schema name.

MADLIB-494
Decision Tree: Filter NULL values out in generating ACS sets.

The unexpected NULL values caused random sort result when computing the
best split point.

MADLIB-489
fix madlib-493
merge from remote