Ensure num_backbuffers > 0 in gs_swapchain_create
Do not modify gs_init_data parameter in gs_create
(API Change) Use const params where applicable

This Fixes a minor flaw with the API where data had to always be mutable
to be usable by the API.

Functions that do not modify the fundamental underlying data of a
structure should be marked as constant, both for safety and to signify
that the parameter is input only and will not be modified by the
function using it.