#18 Scatter plots

This pull request is for adding a feature to generate scatter plots. It includes the following things.

1) A `ScatterPlotSysTest` class in `sys_tests.py`, which is a base class inherited by specific scatter plot classes for three quantitates for test (g1, g2, or sigma) times two quantities for y-axis (a star quantity or a residual quantity), in total 6 classes whose names are `ScatterPlot[Star, Residual]VsPSF[G1, G2, Sigma]SysTest`.

2) An interface to the HSC pipeline is added in `hsc/sys_test_adapters.py`. Each test can be run by adding `ScatterPlotStarVsPSFG1`, `ScatterPlotStarVsPSFG2`, `ScatterPlotStarVsPSFSigma`, `ScatterPlotResidualVsPSFG1`, `ScatterPlotResidualVsPSFG2`, or `ScatterPlotResidualVsPSFSigma` to `sys_test` in the config. Examples of a command line are as follows
- single CCD
```
StileCCD.py $SUPRIME_DATA_DIR --id visit=1228 ccd=49 --rerun [rerun_name]:[stile_rerun_name] --clobber-config -c "sys_tests.names=['ScatterPlotStarVsPSFG1', 'ScatterPlotResidualVsPSFG1']"
```
- multiple CCDs
```
StileVisit.py $SUPRIME_DATA_DIR --id visit=1228 ccd=49^50 --rerun [rerun_name]:[stile_rerun_name] --clobber-config -c "sys_tests.names=['ScatterPlotStarVsPSFG1', 'ScatterPlotResidualVsPSFG1']"
```
.  For multiple CCDs, mean and std is calculated for each CCD, and linear regression is performed on these quantities. One can disable this feature by adding an option `scatterplot_per_ccd=False`. I found that sometimes linear regression on the mean and std for each CCD and that on all stars (without using the mean and std) is significantly different. Which should we believe? I guess the latter, but I would like to hear what you think.
> Is there any reason to have a separate class for star g1 vs. PSF g1, vs. a class for the residual plotter? It seems they have many things in common (except the y axis values and the suitable reference line).
> 
> A similar question applies to the g1, g2, and sigma classes. I guess what I thought this might look like is a more general class like PSFScatterPlot that has a keyword property that must be one of g1, g2, and sigma, and a keyword plot_type that must be either value or residual. Then there's a bit of internal code to choose the x and y axes, but it seems cleaner to me than having 6 separate classes. What do you think? What is the reason to have separate classes? (I am not the best python coder, so it could be that there's some aspect of the situation that I'm missing.)

Ah, you already thought about this! Let's get back to this after discussing in #30 …

> Another question (sorry): I don't see where it defines PSF g1 / g2 / sigma, i.e., where does it decide which columns to pull out of the HSC reductions? If it's using the outputs of adaptive moments estimates, those are usually distortions e1 / e2 rather than shears g1 / g2, so that's a factor of 2 difference for roundish objects.

`hsc/base_tasks.py` defines these quantities. Yes, Melanie and I know those are distortions and it is less confusing to use e1 and e2. However, we left them… We should clean up these at some point (not only for this scatter plot code, but for the entire code).