LRA Bug Fix, Error Messages, and Scattering

I made some bug fixes and slight improvements, including:

- LRA.py bug fixed.  This was a relic of the change from 0-based to 1-based indexing in the getters and setters for group-wise cross sections.
- A large portion of the error messages for getting and setting cross sections had parameters out of order or the wrong number of parameters.  All fixed.
- For group-to-group scattering, all "group1" and "group2" were renamed to more intuitive "origin" and "destination".  A consistent convention of (origin,destination) is used for all routines.
- Inline function for getting the scattering cross section by group was introduced.  This keeps all the logic for how the scattering matrix is stored in one place (at least for getters, maybe the setters could use a similar fix).
- Better error messages are thrown when files sent to materialize don't exist.

Nice catch. I'm curious - is there a reason we need to use the ``ByGroup`` setters here? I know this isn't your issue, but it does seem to me that we should use the pure array setter methods here. Although it doesn't matter for us now, it may be a performance hit to do it ``ByGroup`` later on down the road.