TST/CLN: Refactor io.data.options class to improve testing

Removed most references to month and year (passing expiry date around instead).
Also protected with RemoteDataError checking for the expiry month links.

Fixes #7648