Major rewrite of the Nipype workflows (with smaller associated changes)

This pull request touches most of the workflow code, although in general the actual workflows have not changed in an abstract sense. In some cases, logic was moved from Nipype into longer pure Python functions. Sometimes this only matters from a code perspective. One large practical change affects the behavior of the `reg` and `ffx` workflows so that they are distributed to execution engines in much larger chunks (previously the cluster overhead was far larger than the actual processing).

Imports to the component functions are now handled outside of those functions, which means that dependency errors are caught at script runtime and not in the middle of execution. Tests were added (along with a `-dontrun` option to all frontend scripts) to help automate the process of identifying missing dependencies. The code style was also uniformly updated to use `name` and `iterfield` as positional arguments, which has no practical effects. 

Another substantial change is that the model is now specified using the `glm` module from the `moss` package, with a design matrix object that is very closely based on the FSL design matrix. This facilitates the creation of considerably more information about the model that shows up in the reports (and in R^2 images that are now created and processed up through the fixed effects model). Additionally, the model workflow code is now more straightforward as the design => model transformation happens within the body of the `DesignMatrix` class.

An effort was made to minimize changes in how the user interacts with the package. This was successful for the most part, although there were some changes made in the interest of improving experiment and design specification. These changes have been [documented](http://stanford.edu/~mwaskom/software/lyman/experiments.html) and should hopefully be mostly stable going forward.

The input/output logic in the frontend scripts was improved dramatically. This relies on the new `SelectFiles` interface, which I committed upstream to Nipype. That means that lyman will require the development version of Nipype until 0.9 is released. 

All overlay mosaics are now plotted using matplotlib, rather than the FSL tools that were previously used. This has some advantages, although the code at the moment is written somewhat poorly, with many steps that could be abstracted repeated each time a mosaic is drawn. I intend to remedy this later by writing more abstract functionality and including it in the `seaborn` package. These later changes won't affect much practically, although they will trigger rerunning of report functions.

This pull request is being made as the major new components have been integrated and the branch has been used to processes several real datasets. With that said, not every combinatorial path through the package (and there are quite a few) has been rigorously tested. It is possible that smaller bugs will crop up here and there, which will be fixed directly in master.