Fix potential issue with safety of get() functions.

Several of these were returning a raw pointer to something inside of the
tree. Instead, they now all either return a shared_ptr to something inside
the tree (preserving lifetimes, e.g. for get_array(), get_group(),
get_group_array()) or an option (which gives a copy to the caller).

This could break code if you weren't religiously using auto, but it's been
designed to avoid this if possible. (For example, MeTA doesn't need any
source changes.)
Remove unneeded global get_as() function.
Disallow # in keys.

We're now back to only failing the two tests related to string escaping and
unicode in the toml-test suite.
Update stdin parsing example.
Update CMakeLists.txt to be a bit more robust.

The idea here is to facilitate its inclusion into existing CMake-based
projects by a simple add_subdirectory(). Users should be able to benefit
from the compiler checks built into this file without having to re-write
them for themselves thanks to the CMake interface library feature.

This requires CMake 3.0.0 or greater.