Replace print statements with logging.info() calls
Support for top-level subroutines and functions outside of Fortran modules

* Routines are wrapped in f90wrap_toplevel.f90, toplevel.py
* Removed Makefile.toplevel as Makefile now includes top_level example
Change structure of generated Python code

* Each module is wrapped by a subclass of FortranModule
* Each type is wrapped by a subclass of FortranDerivedType
* Types are defined within Module classes
* Module classes are singletons, and are instantised on module import
* functools.wraps() no longer used, we will build our own docstrings
Docstrings for example projects
Remove defunct argument skip_if_outside_module
Merge branch 'master' of https://github.com/jameskermode/f90wrap

# By James Kermode
# Via James Kermode
* 'master' of https://github.com/jameskermode/f90wrap:
  Remove defunct argument skip_if_outside_module
  Docstrings for example projects
  Change structure of generated Python code
  Support for top-level subroutines and functions outside of Fortran modules
  Replace print statements with logging.info() calls

Conflicts:
	f90wrap/f90wrapgen.py
	f90wrap/pywrapgen.py
	f90wrap/transform.py
	scripts/f90wrap