Margins Logregr: New interface + functionality for interaction terms

Pivotal Tracker: 67684630, 60733090

Additional authors:
Shengwen Yang <syang@gopivotal.com>
Qian, Hai <hqian@gopivotal.com>

Changes:
    - Deprecated the old interface and introduced a new single 'margins'
    function.
    - The new function takes the model table from regression as an input and
    does not run the underlying regression again. The 'margins' function detects
    the regression method from the model summary table and runs the appropriate
    calculation.
    - If interaction terms are present in the independent variables, then
    an x_design string is expected that describes the interactions.
Margins: Update create derivative to get discrete diff for categoricals

Changes:
    - Updated the derivative matrix computation to compute discrete
    differences for categorical variables. This can be overridden with a flag.
    - Added an interaction test in install-check.
Margins Logregr: Add grouping support

    Pivotal Tracker: 51941151

    Additional authors:
    Qian, Hai <hqian@gopivotal.com>
    Rahul Iyer <riyer@gopivotal.com>

    Changes:
        - Add the grouping support (When the model is trained with the grouping_col not null, the margins will be computed for each group)
        - Add a utility function for creating dummy coding for categorical variables
Grouping Support: validate name conflicts

JIRA: MADLIB-833

Additional minor fix: support v1.5dev in hawq_install.sh
Margins: Support for linear regression

Pivotal Tracker: 69949228

Changes:
  - Added new computation for marginal effects of a linear regression model
  - Refactored margins code to abstract the common code between logisitic and
  linear
  - Updated linregr to ouput variance-covariance
LDA: Validation for output table existence

JIRA: MADLIB-839
LSVM: add null-handling for training and predict

JIRA: MADLIB-599
Documentation: aesthetic and usability ehancements

Changes:
- Replace MADlib with the logo
- Add links to earlier releases to main page
- Link logo to madlib.net
K-Means: check the dimension of input data points

Additional author: Feng, Xixuan (Aaron) <xfeng@gopivotal.com>

JIRA: MADLIB-789
Pivotal Tracker: #70256592

Also fix a bug which may raise SIG BUS in weighted sampling
Margins: missing group handling, mlogregr design

Additional author: Feng, Xixuan (Aaron) <xfeng@gopivotal.com>

Pivotal Tracker: #69206488, #51941151, #69949228

Changes:
- add mlogregr to margins design doc
- re-wrap the margins section in design doc
- handle extra groups case + warning for reference variable output
- fixed bugs in create_dummy_coding
Design doc update: Added design doc for CoxPH margins

Pivotal tracker 69206488

Design document for CoxPH marginal effects.
SVM: svm_dot() null-handling by using array_dot()

JIRA: MADLIB-842
Margins: multinomial logistic

Additional authors:
- Shengwen Yang <syang@gopivotal.com>
- Feng, Xixuan (Aaron) <xfeng@gopivotal.com>

Pivotal Tracker: #67684748

Changes:
- added support of marginal effects for multinomial logistic
- appended covariance matrix and coefficients to summary table of mlogregr_train()
- updated the design doc to better reflect the implementation
Deployment: enable gppkg for HAWQ

Pivotal Tracker: #69723452

Changes:
- enable add_gppkg() for HAWQ in cmake
- add control variables to deploy/gppkg/gppkg_hawq_spec.yml.in and deploy/gppkg/madlib.spec.in
- refactor add_gppkg()
Metric: handle arrays w/ different lengths

JIRA: MADLIB-841
ARIMA: performance improvement

Additional author: Shengwen Yang <syang@gopivotal.com>

Pivotal Tracker: #69869364

Changes:
- remove sequential initialization
- revise the query to enable Hash Join instead of Loop Join
Margins: Add documentation and improve performance

Pivotal tracker: 67684748

Changes:
    - Added documentation for new interface of margins for mlogregr
    - Updated Jacobian matrix interface to pass NULL value if no interaction
    is present in the x_design
    - When no interaction exists, passing only the categorical values for
    the f_set and f_unset matrices
    - Computing marginal effects only for the marginal variables requested
    by the user (in contrast with the old method, where all marginal effects
    were computed and only a subset was returned to user)
Sparse Vectors: compare as arrays instead of norms

JIRA: MADLIB-642
Pivotal Tracker: #42937997

Changes:
- change operators to compare as arrays instead of norms
- skip test for HAWQ due to no fix in gp_svec.so
- add NULL/NaN handling
Decision Tree: allow flexible id column name

JIRA: MADLIB-847
Margins: Add marginal effects for cox proportional hazards

Pivotal Tracker: 69586392

Changes:
    - Added marginal effects support to coxph
    - Update coxph summary table to update column names
    - Updated coxph margins design doc to ensure consistent notation