fix inverse trig logic to get as many digits as possible from std::asin. Add test case. Fixes: https://svn.boost.org/trac/boost/ticket/11764