Add is_(leading|trailing)_surrogate/1 to char

For input validation and character encoding transformations
it is essential to check for surrogate characters and their correct
sequence.

NEWS:
    Announce the addition of is_(leading|trailing)_surrogate/1.

library/char.m:
    Add is_leading_surrogate/1 which succeeds if a character is a
    leading surrogate character.
    is_trailing_surrogate/1 succeeds if the character is a
    trailing surrogate character.
Define MR_is_{nan,infinite,finite} as macros with VS2013.

This is a follow-up to commit fff5759.  If we are using C99 we define
MR_is_{nan,infinite,finite} as macros.  We should do the same for MSVC version
1800 (VS2013) and onwards and the only reason we didn't already is that MSVC
doesn't define the __STDC_VERSION__ macro appropriately.

runtime/mercury_float.h:
    Define MR_is_{nan,infinite,finite} as macros with MSVC version 1800
    and onwards.

    isnan(), isinf() and isfinite() are type-generic in C99: simplify some
    existing code accordingly.
Remove deep_profiler/branch_and_bound.m.
Merge pull request #17 from sebgod/feature-char-lead-trail-surrogate

Add is_(leading|trailing)_surrogate/1 to char.