typedef support (Closes #135)

Preserve the view type formatter when projecting types.
Also introduce a convenience wrapper that just typedefs.

With these changes it is possible to support "anonymous" types in C stubs
as in issue #135, for example given:
typedef struct { ... } SDL_JoystickGUID

let joystick_guid : joystick_guid typ = structure "_SDL_JoystickGUID"
(* ... *)
let joystick_guid =
  typedef "SDL_JoystickGUID" joystick_guid

let joystick_get_guid_string =
  foreign "SDL_JoystickGetGUIDString"
    (joystick_guid @-> ptr char @-> int @-> returning void)

Ctypes should generate 'SDL_JoystickGUID x1696 = ...' instead of
'struct _SDL_JoystickGUID x1696 = ...' which would fail to compile.
Allow calling bindings from views when generating C stubs

Usually you are not allowed to call the just defined bindings when
generating C stubs (because they are not real functions yet).
For example the call to 'error ()' should be replaced by '(view_invoke error)
()' here: https://github.com/dbuenzli/tsdl/blob/bc18d14b1a28af99ebc30b61e303ee5304055d31/src/tsdl.ml#L82-L89
Merge branch 'view_invoke'