changed isAvailable/get pattern in OWLOntologyDocumentSource to Optional

This changes a number of methods on OWLOntologyDocumentSource and Target
to use Optionals rather than throwing exceptions on unsupported access.

Also, some default methods added to remove duplication of code across
the code base: 

wrapInputAsReader provides a reader from either a source
reader, the source input stream or an input stream from the document
IRI, depending on which one is actually available. This allows parsers
to just ask for a reader. If none of the above inputs can be found, an 
OWLOntologyInputSourceException is thrown.

OWLOntologyInputSourceException is now a checked exception and is
supposed to raise up to the parseable factory level, where IOException
causes will stop further attempts at parsing from that input source.