Module selection now actually working properly (I think)

There's a few changes in here, mainly centred around getting the module selection to actually work. 

Some issues remaining: it might be nice to explicitly stop a certain derived type from being wrapped. In this way, the wrapped subroutines can USE those derived types, but they can't be accessed from python (perhaps the user doesn't care about actually modifying them). At the moment, any derived type that is referenced or defined in any of the modules that are used are wrapped. However, it may be the case that a certain derived type is only ever used in a subroutine that is never intended to be wrapped, but is sitting in a module that IS wrapped. There is no automatic way (that I know of) of ascertaining this (and in any case, the user still MAY want that derived type wrapped). But we could provide an explicit "--skip-types" option to remove these types from being wrapped.

Also I am sorry that there are several lines that have been modified according to git, but nothing seems to have happened -- it will almost certainly be my IDE making changes to spacing etc to give a uniform format throughout. Your nicely formatted lines specifying the numeric code for fortran types was changed to a single space either side of the '=', but I didn't stage that hunk.

My only other suggestion at the moment is that instead of "from f90wrap.codegen import (.....)" we use the simple "import codegen" with a possible "import codegen as cg" and then prefix all child elements with "cg." I prefer this notation as it seems the most clear to me -- though the refactoring you have done with the imports so far is certainly better than wildcard imports. That's up to you though -- maybe you like that style better :)