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.
Remove Key.from_path and derivative uses.

Addresses first part of #451. Also removes uses of path in
place of key since Key constructor will enable such easy
use going forward.