Change the API

There are two issues for current cl-gobject-introspection API.

1. "call" is used to get constant and enum value, that is not very
intuitive. For example,

 (call *gtk* "WindowType" :toplevel)

In gobject object system, repository (*gtk* here), class, enumeration
are all kind of namespace.  To get a function/const/enum/class from
the repository is kind of namespace access, to get a method from
object is kind of namespace access too.  So that concept is introduced
into cl-gobject-introspection too.  A new API named nget (namespace
get) is added as follow:

 (nget *gtk* "WindowType" :toplevel) -> get enum value
 (nget *gtk* "Window" 'new) -> get a class constructor function
 (nget *window* 'add) -> get a method

2. In object method calling, there is no syntax to distinguish between
"get the function/method" and the function/method parameters.

For example, in

 (call *gtk* "Window" 'new 0)

Where, "*gtk*", "Window" "'new" is used to get the constructor
function, "0" is the parameter for the function.  It is better to do
some distinguish between them.  Such as,

 (funcall (nget *gtk* "Window" 'new) 0)

To save some typing, a macro named invoke is introduced as follow:

 (invoke (*gtk* "Window" 'new) 0)

In this way, (*gtk* "Window" 'new) can be seen as function and "0" can
be seen as parameters.
Adjust test cases because of API change
Bump the version number to 0.3 because of API change
Merge pull request #31 from hying-caritas/api

Change the API