Fixes for wrap_c

* Make wrap() signature more consistent, so it can be called
  recursively inside wrap(...,tdec::TypedefDecl,...)
* wrap() for FunctionDecl: libname is declared ASCIIString, but can
  passed as a symbol
* Remove redundant wrap(...,tref::TypeRef,...) declaration
* Simplified calls to wrap() in wrap_header()