MRI-Binding: Input constants are symbols in RGSS3
Bitmap: Normalize rectangle passed to pixman
MRuby-Binding: Reduce number of object allocations

This is the same change as f067e0eff8777f78a9f6ab8ad0af1309d907e6ba,
applied to the mruby backend.
Bitmap: Clip dest rect when blitting from mega surface
Font: 'exist?' allows any object (returns false if not string)
MRI-Binding: Typo in Flashable binding
Lift 'Disposable' concept from core into bindings

Instead of replicating the RGSS Disposable interface in C++
and merely binding it, redefine the 'disposed' state as the
entire core object being deleted (and the binding object's
private pointer being null).

This makes the behavior more accurate in regard to RMXP.
It is now for example possible to subclass disposable classes
and access their 'dispose'/'disposed?' methods without
initializing the base class first (because the internal pointer
is simply null before initialization). Accessing any other
base methods will still raise an exception.

There are some quirks and irregular behavior in RMXP; eg.
most nullable bitmap attributes of disposable classes
(Sprite, Plane etc.) can still be queried afterwards, but
some cannot (Tilemap#tileset), and disposing certain
attributes crashes RMXP entirely (Tilemap#autotiles[n]).
mkxp tries to behave as close possible, but will be more
lenient some circumstances.

To the core, disposed bitmap attributes will look
identically to null, which slightly diverges from RMXP
(where they're treated as still existing, but aren't drawn).
The Disposable interface has been retained containing a
single signal, for the binding to inform core when
objects are disposed (so active attributes can be set to null).
MRuby-Binding: Input constants are symbols in RGSS3

Port of 88bb92aadc1fc5cd9759e5ecf657fde157504bc8.
MRuby-Binding: Bind #initialize_copy for clonable classes

Port of b7a2ba830c183242c7c469437f6781e793599458.