add template methods is<> and as<> to facilitate json handling as part o...

...f templates

This change is a proposition to extend basic_json class, as well as support ones (const_val_proxy and object_key_proxy), with two template methods enabling dynamic type handling. This extension is useful in case of usage of json as part of some other template.

To check current type of json object:
template<typename T>
bool basic_json<Char>::is<T> ();

types basic_json<Char>::object_type and basic_json<Char>::array_type are added to enable usage of method is<> with specific json objects.

To retrieve types value from json object:
template<typename T>
T basic_json<Char>::as<T> ();