Add GPL Licensed C5.0 Classifier

        * ml/C5/attwinnow.c, ml/C5/c50.c, ml/C5/classify.c, ml/C5/confmat.c,
        ml/C5/construct.c, ml/C5/contin.c, ml/C5/defns.i, ml/C5/discr.c,
        ml/C5/extern.i, ml/C5/formrules.c, ml/C5/formtree.c, ml/C5/getdata.c,
        ml/C5/getnames.c, ml/C5/global.c, ml/C5/gpl.txt, ml/C5/implicitatt.c,
        ml/C5/info.c, ml/C5/mcost.c, ml/C5/modelfiles.c, ml/C5/prune.c,
        ml/C5/p-thresh.c, ml/C5/report.c, ml/C5/rules.c, ml/C5/ruletree.c,
        ml/C5/siftrules.c, ml/C5/sort.c, ml/C5/subset.c, ml/C5/text.i,
        ml/C5/trees.c, ml/C5/update.c, ml/C5/utility.c, ml/C5/xval,
        ml/C5/xval.c: Add source files from GPL C5.0 Release 2.07.
        * ml/C5/Makefile.am: Build C5.0 executable.
        * ml/C5/Makefile.in: Generate.
        * ml/Makefile.am: Add C5 subdirectory.
        * ml/Makefile.in: Regenerated.
        * configure.ac: Add generation of ml/C5/Makefile
        * configure: Regenerated.
Add support for calling C5.0 to learn from data.

	* include/mageec-db.h (get_all_results): Added.
	(store_pass_blob): Likewise.
	* include/mageec-features.h (basic_feature): Added string, int
	constructor.
	* include/mageec-result.h (result): Added featlist.
	* mageec/features.cpp (basic_feature): Added string, int constructor.
	(basic_feature::get_feature): Return correct feature value.
	* ml/database.cpp (initdb): Add feature and passblob tables.
	(get_all_results): Add function to return all compiled data known to
	database.
	* ml/ml.cpp (add_result): Store feature list in result object.
	(process_results): Generate files for C5.0 to machine learn passes.
	* ml/Makefile.am: Add passing libexec dir to compiler.
	* ml/Makefile.in: Regenerated.
Add build instructions to documentation.

	* doc/mageec.texi: Add build instructions.
Move and install headers into include/mageec directory.

This allows us to build compiler plugins for MAGEEC without the need
to point them at the main MAGEEC source directory.

	* include/elfhash.h: Renamed to include/mageec/elfhash.h.
	* include/mageec-db.h: Renamed to include/mageec/mageec-db.h
	* include/mageec-features.h: Renamed to
	include/mageec/mageec-features.h
	* include/mageec-ml.h: Renamed to include/mageec/mageec-ml.h.
	* include/mageec-passes.h: Renamed to include/mageec/mageec-passes.h.
	* include/mageec-result.h: Renamed to include/mageec/mageec-result.h.
	* include/mageec.h: Renamed to include/mageec/mageec.h.
	* gcc_plugin/gcc-callbacks.cpp: Update include references.
	* gcc_plugin/gcc-plugin.cpp: Likewise.
	* gcc_plugin/mageec-plugin.h: Likewise.
	* mageec/elfhash.cpp: Likewise.
	* mageec/elfhash.cpp: Likewise.
	* mageec/features.cpp: Likewise.
	* mageec/hasher.cpp: Likewise.
	* mageec/mageec.cpp: Likewise.
	* mageec/mageechash.cpp: Likewise.
	* mageec/passes.cpp: Likewise.
	* ml/database.cpp: Likewise.
	* ml/ml.cpp: Likewise.
	* include/Makefile.am: Added rule to install headers.
	* include/Makefile.in: Generated.
	* Makefile.am: Add include subdirectory and update include references.
	* Makefile.in: Regenerated.
	* configure.ac: Add generation of include/Makefile.
	* configure: Regenerated.
Remove out of date comment about executing GCC pass directly.

        * gcc_plugin/gcc-callbacks.cpp: Removed comment about executing
        pass directly.
Add C5 sample read code. This will be modified to become code called
to make decisions.

        * ml/C5/classify-defns.h, ml/C5/classify-global.c,
        ml/C5/classify-hooks.c, ml/C5/classify-sample.c: Add sample public
        RuleQuest C5 code.
        * ml/Makefile.am: add C5/classify-sample.c to ML library.
        * ml/Makefile.in: Regenerated.
Changes to C5 sample code to support linking with MAGEEC.

        * ml/C5/classify-hooks.c (FreeGlobals): Removed freeing of PropVal, as
        inclusion in library causes free to abort.
        * ml/C5/classify-sample.c (main): Renamed to c5_classify_main.
        (c5_classify_main): Removed printfs, now returns whether test
        was classified as "t"/run pass.
Add support for making decisions based on stored trees.

        * gcc_plugin/feature-extract.cpp (mageec_featextract_exec): Build
        feature vector and pass to MAGEEC storage layer.
        * gcc_plugin/gcc-callbacks.cpp (mageec_pass_gate): Make decision
        on executing pass based on previously stored features.
        * gcc_plugin/gcc-plugin.cpp (void parse_arguments): Add parsing for
        'nodecide' argument to disable decision making.
        * gcc_plugin/mageec-plugin.h (mageec_no_decision): Add parameter for
        disabling decision making.
        * include/mageec/mageec-db.h (get_pass_blob): Defined.
        * include/mageec/mageec-decision.h: Add header for decision state.
        * include/mageec/mageec-ml.h (mageec_framework::make_decision):
        Defined.
        * include/mageec/mageec.h (mageec_framework::featset): Add feature
        vector storage.
        (mageec_framework::take_features): Defined to add to feature storage.
        (mageec_framework::make_decision): Defined for decision making.
        * include/Makefile.am: Add mageec/mageec-decision.h to headers.
        * include/Makefile.in: Regenerated.
        * mageec/mageec.cpp (mageec_framework::new_file): Clear feature store.
        (mageec_framework::end_file): Clear feature store.
        (mageec_framework::take_features): Store given features in store.
        (mageec_framework::make_decision): Pass stored features to ML layer.
        * mageec/Makefile.am: Link mageechash against libmageec_learner.
        * mageec/Makefile.in: Regenerated.
        * ml/database.cpp (database::store_pass_blob): Return blob (decision
        tree) if one has been previously stored.
        * ml/ml.cpp: Add C linkage reference to c5_classify_main.
        (mageec_ml::make_decision): Restore decision tree information stored
        in database and use given features to make decision via
        c5_classify_main.
Update copyright notices to 2013, 2014.
Fix possible attempt to free a null pointer in machine learner.

        * ml/ml.cpp (mageec_ml::finish): Only delete database object if it
        exists.
Add file based pass selector for training purposes.

        * include/mageec/mageec-ml.h (mageec_ml::init): Mark as virtual.
        (mageec_ml::make_decision): Likewise.
        (file_ml): Define class for file-based pass control.
        * include/mageec/mageec.h (mageec_framework): Add selection of
        mageec_ml or file_ml as machine learner based on definition of
        MAGEEC_FILEML.
        * ml/ml.cpp (file_ml::init): Store string list of passes to execute
        based on executelist file.
        (file_ml::make_decision): Make execute/don't execute decision based on
        previously loaded execute list.
Move vector math functions to common header.

	* gcc_plugin/feature-extract.cpp: Added use of vector_math.h.
	(vector_min): Removed.
	(vector_max): Removed.
	(vector_sum): Removed.
	* include/vector_math.h: Add vector functions from GCC feature
	extractor.
	* include/Makefile.am: Add vectormath.h to installed headers.
	* include/Makefile.in: Regenerated.