Add preprocess_mapping_file and tests

This function serves as a controller for all the pre-processing that
might be needed prior to formatting the mapping file data into java
script.
Remove process_mapping_file from emperor.util

process_mapping_file has now been substituted by preprocess_mapping_file
this function will take the responsability of a controller function,
managing tasks related with curating the metadata for other functions in
the script scripts/make_emperor.py
Add --color_by option to script interface

You can now select what are the metadata categories of interest you want
the PCoA plot to be colored by.

Some clean-up was done in the script interface.

This should fix #4
Merge pull request #20 from ElDeveloper/issue_4

Fix issue #4 - Add --colory_by option
Add a check for unmatching mapping and coords file

The script interface will now display an error when there are no samples
in common between the mapping file and the coords file.

The script interface will now display an error when the samples
represented in the coordinates file are not all represented by the
mapping file. The user however can override this with an extra flag.

This should fix issue #21
Fix incorrect check for unmatching files
Merge pull request #23 from ElDeveloper/issue_21

Add a check for unmatching mapping and coords file - close #21
Add preprocess_coords_file

This function will handle any customization to the coordinates file that
needs to happen before this data gets plotted. Right now the only thing
that it does is to add the custom axes when requested.
Add option to use metadata categories as axes

The script interface has a new option to use metadata categories as
explicit axes in the plot.

This should close #6 as it is but there is still remaining work to be
able to name the axes properly.
Fix problem where unuseful samples wer not ignored

Samples in the mapping file but not in the coords file would make the
script fail with the --custom_axes option if the values in the metadata
mapping file was not numeric.
Add fill_mapping_field_from_mapping_file

This function will padd a metadata mapping file with given values in the
format of Category:ValueToPad;OtherCategory:OtherValueToPad.
Add --missing_custom_axes_values option

This option overrides the error raised when mapping file values are
passed with non-numeric values, the user is now capable of selecting
what this values are. Instead of removing the samples.
Add usage examples for --custom_axes

Modified some of the script interface help strings
Add action='append' to -x in the script interface

This change allows users to pass multiple category:value pairs without
using ';' as a delimiter.
Add comment documenting -x internal behaviour
Remove tab at the top of the file
Merge pull request #24 from ElDeveloper/issue_6

Custom axes -- Issue 6
Change the definition of pc1, pc2 and pc3

These values are no longer defined as a string plus a percent sign,
these are now defined as empty variables so the python code can add
whatever is needed.

The python code now does something like this for pc1: PC1 (25 %) when
writting the javascript code, the code is also now capable of handling
custom axes names.

Tests were updated accordingly.
Update script to correctly label axes names
Add setup.py script and installation notes

The setup.py script provides the most basic functionality required for
emperor as a python package. The installation notes will guide you
throug a generic installation of the scripts and libraries.

This should fix #16