OpenMC Data Source

This PR adds an OpenMC-based cross section data source.  It uses an OpenMC `cross_sections.xml` file as a listing of ACE files that the data source knows about.  It then lazily reads these in according to which reaction data is asked for and for what temperature. Data in the libs attribute is stored in its original pointwise form while data in the rxcache is discretized according to a user specified 'source' group structure.  This is to maintain compatibility with the spirit and API of the other data sources.

It would be nice to have something like this for an arbitrary listing of ACE files as well.  Alas, that is for another day.

Some minor API cleanup to the XSCache is also included in this PR.