Be consistent about raising exceptions in Option type
Be consistent about raising exceptions in Option type

Any time an exception is passed or the result of a passed callable
raises an exception, that exception will be raised.

Also, when an Option is unwrapped, if the wrapped value is an exception,
it will be raised.

The utility functions `raise_or_return `raise_or_call_and_return` were
added to support this (the former used to be `Option._raise_or_return`).

wylee/django-arcutils,PSU-OIT-ARC/django-arcutils,wylee/django-arcutils,PSU-OIT-ARC/django-arcutils