clang port

Major changes are:
* introduction of macro JSONCONS_NOEXCEPT to handle various method signatures including, or not, noexcept or throw() keyword. Mainly used for exception declarations.
* change how exceptions are raised because std::exception cannot be directly used to create instances, as specified by C++ standard, only derived classes can be used.
* change private method basic_json::as_value to a local template class as_value because standard does not allow to specialize a method inside a template definition (mainly because the result is equivalent to a partial specialization which is not allowed).
* change std::auto_ptr to std::unique_ptr inside basic_json_deserializer::stack_item because it is not allowed to used auto_ptr in conjunction with containers. Anyway, auto_ptr is, for this reason, deprecated with c++11.