Also cleanup all setImage() error reporting. All error checks are changed from silent to NON_FATAL_ASSERT, which means they'll throw if exceptions are enabled or do a no-op and log a message otherwise. Also added more precondition checks.