Cleanup exception classes and handling

Renames CycException to Error (will be cyclus:: namespaced with Anthony's upcoming PR). Created 5 basic types of exceptions to handle most use cases with brief blurbs for when to use them. Removed exception squashing from various places.  From now on, throwing an exception (within core code) means that you intend cyclus to terminate. Note there is a companion PR for cycamore (https://github.com/cyclus/cycamore/pull/117).