ENH: Improving sample dataset tracking, adding MEGSIM support

Designed to address #11 and #275, and future dataset additions. 

The changes are kind of difficult to follow because I restructured the utils.py function, but basically I 

1. Restructured utils.py with comments and (more) logical grouping.
2. Added `.mne/mne-python.json` as a config file, so users can store and edit settings like `MNE_LOGGING_LEVEL` there. I don't like having to set env vars unless I have to, so I'm happy about the transition here. For a given parameter, env vars take precedence, then values in the config file, then whatever the defaults are. I think this is the sanest behavior.
3. I also added convenience functions (`get_config`, `set_config`, and `get_config_path`) for getting and setting config / preference variables in case the user wants to do it in Python instead of manually editing the config file in a text editor.
4. Made it so the sample dataset path doesn't need to be specified every time.
5. Restructured `datasets/sample` to be more consistent with other parts of mne-python. Basically I moved what was formerly `__init__.py` to `sample.py`, and made an appropriate `__init__.py`.
6. Removed relative path usage for sample dataset in nosetest modules, e.g. replaced `sample.data_path('..')` with `sample.data_path()` since the function is "smart" now.
7. Made it "guess" a good path for the sample dataset by default, and prompt the user to make sure they want to download there.
8. Prompt the user to update the dataset path. This should be useful for users the first time they download the sample dataset.
9. Added basic tests for config read/write.
10. Added MEGSIM downloading support. Allows the user to download MEGSIM data file-by-file. Local copies mirror MEGSIM's website structure.

Ready for review.