New module interface, bug fixes, etc.
* General
  -- This commit introduces a totally different way to interact with and
  manage modules.  Instead of the weird, up-to-the-module interface I
  was previously using, all modules now run through an interface very
  similiar to that found in Metasploit.  A list of module-specific
  options are provided once selected, which can then be set and
  configured by the user before running.  This should allow more freedom
  and control over what is set/used before running a module.
* src/core/config.py
  -- Converted all of the option types to conform to the new style.
  -- Modified the way module types are checked to conform to the new
  style.
  -- Removed evalBool and evalInt, as we now use eval_type()
  -- Removed the check in pptable for one row; even one row should be
  displayed as a regular table.
* src/core/module.py
  -- Added three new meta options
* src/core/stream.py
  -- Added the handle_opts call in between selecting a module and
  actually initializing it.  This hook is in place for setting options.
  -- Added the handle_opts function for managing user options.
  -- Added fetch_str to fetch string representations of objects.
* src/core/util.py
  -- Added the check_dependency function to verify a module can be
  loaded and all dependencies are resolved.
  -- Added a section to the help() display to show module options.
  -- Added eval_type, which will take a value and a
  string-representation of a type and attempt to evaluate it.
* src/modules/attacks/*
  src/modules/dos/*
  src/modules/parameter/*
  src/modules/poison/*
  src/modules/scanner/*
  src/modules/services/*
  src/modules/sniffer/*
  -- All modules have been converted over to the new interface.  This
  means input prompts have been removed, and an info string, along with
  an opts dictionary, have been added and populated.
* zarp.py
  -- All modules are first sent to check_dependency to verify that they
  can be loaded and resolved before actually being built.