Llr optimizer initial

Hi Sebastian,

This is my latest pull request, which includes the initial code for the LLR Optimizer analysis. I have also updated Steve's template.py code, by taking the approach you suggested-grab his template.py from his repo and incorporate all the suggestions that I commented on myself. I also have tried to upload all data and input files, so if there are any missing, please let me know! The only thing really missing from the optimizer analysis code right now is the implementation of a few additional systematics, as well as adding the priors on the parameters that we do not wish to constrain.
The bins that are zero depend on the MC information reconstructions that is used for all of the templates. So to answer your question: "Are there any zero bins" the answer is "Yes" if we extend our coszen range to beyond the horizon, because not many (or zero) events will reconstruct, e.g. at energies of 70 GeV and coszen of 0.9, giving the effective area in that bin a value of zero and making the expectation of that bin zero.

This is not a problem when we stick to only upgoing events, but we eventually want to (or at least have the option to) extend the coszen range to upgoing as well at least to perform some checks of the systematics. This is the main motivation for me to include this check, especially because I was originally using the entire coszen range in my work.

To ensure the maps are pruned the same way everywhere, if we use ```flatten_map``` everywhere, instead of only in one place and not the other as I mistakenly did here, we will be good.