debugger: breakpoints in scripts not loaded yet

When developer calls setBreakpoint with an unknown script name,
we convert the script name into regular expression matching all
paths ending with given name (name can be a relative path too).

To create such breakpoint in V8, we use type `scriptRegEx`
instead of `scriptId` for `setbreakpoint` request.

To restore such breakpoint, we save the original script name
send by the user. We use this original name to set (restore)
breakpoint in the new child process.

This is a back-port of commit 5db936d from the master branch.
doc: link joyent logo in website footer
benchmark: hash stream
lint
stream: don't create unnecessary buffers in Readable

If there is an encoding, and we do 'stream.push(chunk, enc)', and the
encoding argument matches the stated encoding, then we're converting from
a string, to a buffer, and then back to a string.  Of course, this is a
completely pointless bit of work, so it's best to avoid it when we know
that we can do so safely.
tools: remove unnecessary cpplint rules

We don't actually care about header order much, and since we never use
stl classes, 'string' isn't an issue for node ever.
src: lint stream_wrap.cc
src: Add StringBytes static util class
src: Use StringBytes in StreamWrap
revert stream wrap changes (different approach coming)
src: improved StringBytes API

Three functions:

- StringBytes::SizeFast()
- StringBytes::SizePrecise()
- StringBytes::Write()
useless buffer test is hard
buffer: DRY string decoding using StringBytes
src: Use StringBytes for DecodeWrite/DecodeBytes