Improve the code that combines continuous and discrete probabilities

Changes
* When no discrete model is specified for mixed variables, use the
  overflow from the continuous model as discrete probability
* Handle various edge case such as when all mass is placed on the
  discrete points
* Cleaned up the code
Compute BPE probability on boundaries correctly

Since BPE can now be used without a discrete model for mixed variables,
the probability on an edge point is the fraction of members on the edge.
Before, the interpolation would return half that fraction.
Allow empty data objects

Previously, an input container and a specification of which inputs to
load was needed to construct a Data object. Remove this restriction to
simplify its construction when used in testing.
Allow ensembles to be sampled from the distribution in OutputNetcdf

Previously the output scheme gave the ensemble before any probabilistic
modeling had been applied. Added the option to draw the ensemble from
the final probability distribution. Added the option to keep the rank of
the members in the same order as the original ensemble.
Add more thresholds in default namelist
Allow fractional and negative thresholds in reliability diagram
Add method to NetcdfFile that finds location index