Throw UnsupportedOperationException rather than using System.err

Replacing all uses of System.err for unsupported operations with UnsupportedOperationExceptions. This makes it more obvious when relying on unsupported parts of the library.