ParamSpec: fix argument marshalling

We need to treat GParamSpec and derived classes as gjs_param,
otherwise we fallback on gjs_fundamental and crash.

https://bugzilla.gnome.org/show_bug.cgi?id=725282
GParamSpec: remove custom constructor

With proper argument marshalling, we don't need the custom code
anymore, the regular GObject functions works just as well.
We still need a lot of JS override code, because the arguments
are swapped...

https://bugzilla.gnome.org/show_bug.cgi?id=725282
GParamSpec: implement methods

Methods are definitely expected for GParamSpec classes, even
more than fields, and are easy to implement.

https://bugzilla.gnome.org/show_bug.cgi?id=725282
GParamSpec: fix typo

maxmium instead of maximum
all: fix method resolution on prototypes

We must define as methods on prototypes only the functions
that have the IS_METHOD flag, or we get static functions there.

https://bugzilla.gnome.org/show_bug.cgi?id=725282
param: use accessors to read name, nick, blurb and default value

The GParamSpec API provides binding friendly accessors for
name, nick, blurb and default, so we don't need to recurse the
hierarchy looking for a field.

https://bugzilla.gnome.org/show_bug.cgi?id=725282
param: implement static methods

We can share the code with object, and get them for free.

https://bugzilla.gnome.org/show_bug.cgi?id=725282
fundamental: deduplicate code

We can share the static method code with GObject