Now it explicitely stores name of SDL function which caused an error
and generates complete user-readable error message which contains both
function name and SDL error message. Users can now handle SDL2pp
exceptions along with all others in `catch (std::exception&)' and
get complete error info.
While here, fixed incorrect function names in some throw's
Remove "valid" flag from Rect and Point, derive them directly from
SDL_Rect and SDL_Point structures, simplify logic. Now x/y/w/h member
variables are directly accessible and Rect/Point may be passed as
SDL_Rect/SDL_Point via pointer or reference.
Change all cases where Null Rects and Points were used to Optional.
invalid state related functions like Null(), IsNull() and Get() are
now deprecated but are not removed yet for compatibility sake.