Generalizes types in function declarations

Also removes unnecessary templating of scalar variable types

Fixes #1
Adds @vectorize_{n}arg appropriately to functions with all scalar numeric arguments.

Addresses #3
Dereferences scalar outputs that are dynamically declared in the wrapper.

Addresses #4
Changes wrapper generator behavior to declare dummy opaque gsl_* types

Addresses #5
Updated generated wrappers