added missing include

SourceRangeSet.hpp was missing an #include <algorithm>.
fixed srcbuf with null-terminated data

The constructor SourceBuffer(const utf8char* ptr) that accepts a
null-terminated string, was flawed. It called std::find(a,b,0) with b being
a null pointer to search indefinitely until the null-terminator was found.
Unfortunately this invoked undefined behaviour since b<a, where the code would
run on Mac OS X, but fail on Ubuntu. Added a custom implementation of find()
that allows the search in an open range [first, infinity).