Merge in Pierre Augier's changes

Pierre started with a fresh repository that already had some differences from our master branch (for instance, renaming `src/` to `modred/`, changing `N` to `np` in many files, and other things).  This branch includes those changes and then applies Pierre's commits, to preserve that part of the history.

Note that Pierre's changes should probably be reviewed too.  For instance, they introduce a dependency on the `future` library, whether one is using python 2 or python 3, and I think it would be better not to have this additional dependency.  We're not doing anything terribly fancy here, so it shouldn't be much trouble to make the code compatible with both python 2.7 and python 3 without this additional library.