Windows multiprocessing support

This includes some features and bug fixes to make the hexrd command-line work with multiprocessing on Windows. The changes include:

* Removing the threading usage from the GE frame reader. This may not have been strictly necessary, but it makes things simpler and helps with profiling the performance.
* Adds a "hexrd cache-frames" command, as well as default use of this caching in "hexrd fit-grains". I recommend you look at this closely and make sure it is compatible with your work flow, that the cached file won't get unexpectedly stale the way your analyses typically go.
* In Windows multiprocessing, one cannot pass parameters through global variables. This was removed for the code fit-grains triggered. It looks like there is more code in there following this model, which would also have to be updated if it becomes needed on Windows.
* There was usage of "x is 1"-style coding, which is not guaranteed to work by Python, but often does. Due to some Windows details, this was causing failures, and was replaced with "x == 1".
* To make running it easier on Windows, a setuptools entry_point is now created by the setup.py, which allows you to call it as a straightforward "hexrd ..." on Windows just like you can on Unix.
I put it here because it felt like there's a slight chicken and egg issue here. The fit-grains command requires a --force flag to overwrite an analysis_dir, and I found I wanted to wipe out the analysis dir and rerun fit-grains without destroying the cached .npz file. I know a development workflow is different from the analysis workflow, so you're in a much better position to evaluate this.