Making cached dataset ID require explicit interaction.

Incorporates feedback from @tseaver. Also
- Fixing bad tests that accidentally leave side-effects.
- Making the method to set the default dataset public.