waf: Don't abuse static libraries
Instead of abusing static libraries putting shared objects in them, and
manually setting the flags required to build shared objects, use sets
of objects and Waf's own cshlib/cxxshlib flags.
Also explicitly call the appropriate build context method instead of
only listing features in order to make it clear what is built.
Some references:
* http://docs.waf.googlecode.com/git/book_16/single.html#_predefined_task_generators
* http://docs.waf.googlecode.com/git/book_16/single.html#_local_libraries
* https://code.google.com/p/waf/issues/detail?id=1398