Various Cleanups

This combines a bunch of misc cleanups and bug fixes:

1. As I proposed on the mailing list, classes with extra dependencies should fail on initializing rather than importing.  This will allow the documentation to build successfully.  

As a result, we can get rid of all the code to test of modules import or not.  All modules should always import, so there is no need to check.  A failure to import is an error and should be fixed.  

This also results in changes to how test skip rules are implemented, so I cleaned those up in general in the process.

2. I did a general cleanup of all imports, including removing unused imports, making import naming more consistent, and simplifying and removing redundancy.

3. I ran the code through several static code checkers, and found various small fixed, improvements and inconsistencies.  I also found a number of small bugs that could be hit under various circumstances.

4. The mathematical operators in the array classes had a substantially different call signature than those in quantities, which they derive from.  I made these consistent.

5. The dummy methods in baseio accept only keyword arguments, but some classes were trying to use positional arguments in some cases.  So I added support for positional arguments as well.

6. The documentation and config files listed different supported python 3 versions in different places.  I updated this to say that only 3.3 is supported.