started major refactoring (OO, exceptions)

started major refactoring of plugin
- applied some "OO"-like concepts from vim help:
  used dictionaries to create objects for grouping
  data and methods
- started using exceptions try...catch
added header-lines, configure, build targets

- further refactoring regarding "OO"-like patterns
- added showing of header lines in targetlist window
  and offering waf commands "configure" and "build"
  (waf commands not yet operational)
  [Waf v.....      ]
  configure
  build
  [Build-Targets   ]
'configure', 'build add', 'build targets' now work

- plugin now shows lines containing general Waf commands above the
  actual build-target list:
    [Waf v.....      ]
    configure
    build all
    build targets
    [Build-Targets   ]
    ...

- when the user presses <CR>/<Return>/<Enter> on one of these waf commands:
    configure        => execute cmd ":mak configure"
    build all        => execute cmd ":mak build"
    build targets    => execute cmd ":mak --targets=<selected targets>"

- when showing build-command in preview window, now "mak" is substituded
  by content of vim option &makeprg, so commands now look e.g. like
    "./waf --targets=..."
added waf cmd '--help' to buildmenu
bugfix regarding listWindow refresh
added waf cmds 'distclean', 'clean' to buildmenu
refactored build cmd selection code

made code which selects build command when the user presses <Return>
more intelligent. it bases now on dictionary 's:buildCmd' and
list 's:buildCmdIndex' which together provide a more or less "object
oriented" approach
refactored window handling

the "listwindow" and the "previewwindow" are now handled
in a more intelligent way: instead of re-creating a new
buffer and its content for each of both on each (re-)open,
now a buffer for the content of both windows is just created
one time and then only closed and re-opened in new split windows.

further from now on option "nomodifiable" is used to ensure
that the user cannot change content of "listwindow" or "previewwindow"
content.
implemented usage of status line

both "listwindow" and "previewwindows" now have
their individual statusline
repaired RefreshBuildTargetList feature

when the user presses 'R' while being in the "listwindow",
then './waf list' is executed again and the "listwindow"
is built again from scratch. this feature already existed,
but did not work anymore because of changes in previous
refactoring commits. this commit should fix it.
user can also close windows by hand

made both buildmenu windows "listwindow" and "previewindow" safe
against the case when the user closes one or even both of them
not by calling BuildmenuClose() or BuildmenuToggle(), but instead
with the ex-command ":q[uit]"

now ... in that case ... buildmenu will clean up the mess and
close/re-open accordingly
updated docu, tiny bugfix
updated README.md (synced to docu)