[SPARK-4079] [CORE] Consolidates Errors if a CompressionCodec is not available

This commit consolidates some of the exceptions thrown if compression codecs are not available. If a bad configuration string was passed in, a ClassNotFoundException was through. Also, if Snappy was not available, it would throw an InvocationTargetException when the codec was being used (not when it was being initialized). Now, an IllegalArgumentException is thrown when a codec is not available at creation time - either because the class does not exist or the codec itself is not available in the system. This will allow us to have a better message and fail faster.
Hmm. This is fine, but one suggestion in the bug was to have extra wording for the case where the default codec is not available, suggesting to the user to change the configuration to set the codec to LZF instead. I think that would be a nice thing to have, since that's probably the most common case of this exception happening.