Use typedef names as possible

In the current API set, there are both of typedef-ed structures and and un-typedef-ed.
They don't consistent.
Some un-typedef-ed are not alternative but others can use typedef-ed type.

I suggest to use only typedef-ed types.
But in this version, they have "typedef struct A { } A;" format. This is for the backward compatibility.