Implemented chipenrich approximating enrichment method

*Added comments to some functions to give downstream/upstream context.
*Added test_approx to SUPPORTED_METHODS and METHOD_NAMES.
*num_peaks_per_gene(…) no longer includes calculations for ce.ratio
method. The functionality is broken out to calc_peak_gene_overlap(…).
Tested broken out versus not and obtained exact same results.
*Added calc_approx_weights(…) which determines the appropriate weights,
the probability of a peak, and the resid.dev based on the smoothing
spline. For use in the approximating method.
*Added test_approx(…). Still unclear on the meaning of nwp in the
prototype code. Also unsure of the correction case implementation.
*Also of note is that the chipenrich model is peak ~ goterm +
s(log10_length,bs='cr’), but for the approximating method peak is
replaced by peak*weight and is no longer binary as necessary for
logistic regression so the approximating model is goterm ~ peak*weight.
The variables are swapped.
Bug fixes

*For some reason, adding library(rms) at the top of main.R does not
load the package, but putting it in test_approx(…) works like a charm.
*Removed leftover message(i) statement in the set.gene loop.
*Fixed absence of num_peaks column in peak correction.
*Fixed longstanding bug where reading in a .narrowPeak gives a message
saying “Reading broadPeak…”. Silly.
Change p-value calculation in approximate method

1-pchisq(z^2,1) has a lower limit that using lower.tail=F doesn’t have.