Use isfinite() instead of finite() when available

**Note: Anthony Ramine did most of this work in Nov 2013. With his permission, I cherry-picked his commit, made sure it worked, and am now submitting it.**

OS X Mavericks builds result in a number of warnings about `finite()` being
deprecated, like these:

    beam/erl_arith.c:451:7: warning: 'finite' is deprecated: first deprecated in OS X 10.9 [-Wdeprecated-declarations]
                        ERTS_FP_ERROR(p, f1.fd, goto badarith);
                        ^
    sys/unix/erl_unix_sys.h:319:33: note: expanded from macro 'ERTS_FP_ERROR'
                                            ^
    sys/unix/erl_unix_sys.h:244:51: note: expanded from macro '__ERTS_FP_ERROR'
                                                      ^
    /usr/include/math.h:718:12: note: 'finite' has been explicitly marked deprecated here
    extern int finite(double) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_9, __IPHONE_NA, __IPHONE_NA);

Add checks to use `isfinite()` instead of `finite()` where available. Verified
on OS X Mavericks 10.9.5 and Ubuntu 12.04.