Made certain FFI types public.

Wrappers will now use these types instead of c_void, unless
a natively defined version of the structure is available.
Minor fixes to the Surface wrapper.

Adjust mutability of Surface FFI.

Adjust some of the FFI functions to use the correct
mutability flags for the handle pointers.

Add 'with_ptr' functions to Surface.

Rename Surface 'data' to 'handle' for consistency.
Added 'with_ptr' to Window and made the handle private again.
Add Texture stubs so we can write the Renderer wrapper.
Add blueprint stubs for Renderer.