src: rename macros.py to notrace_macros.py

This incarnation of macros.py is only used to disable the (d)trace
macros. Rename it so it better reflects its purpose. A new macros.py
will be added in a follow-up commit.
tools: fix js2c macro expansion bug

If the same macro was used twice in close proximity, the second one
didn't get expanded.
lib: macro-ify type checks

Increases the grep factor. Makes it easier to harmonize type checks
across the code base.
src: move NODE_MODULE_VERSION to node_version.h
cluster: support setting data on shared server

If `obj` given to `cluster._getServer` has `_setServerData` or
`_getServerData` methods, the data will be synchronized across workers
and stored in master.
tls: share tls tickets key between cluster workers

fix #5871
openssl: use asm for sha, md5, rmd
streams: Don't emit 'end' until read() past EOF

This prevents the following sort of thing from being confusing:

```javascript
stream.on('data', function() { console.error('got data'); });
stream.pause(); // stop reading

// turns out no data is available
stream.push(null);

// Hand the stream to someone else, who does stuff...
setTimeout(function() {
  // too late! 'end' is already emitted!
  stream.on('end', function() { console.error('got end'); });
});
```

With this change, the `end` event is not emitted until you call `read()`
*past* the EOF null.  So, a paused stream will not swallow the `end`
event and emit it before you `resume()` the stream.
doc: Fix missing backtick in debugger doc
doc: document possible return values of os.arch()
cluster: remove duplicate this.errno assignment
cluster: fix shared handle bind error propagation

A failed bind() was already being correctly reported in round-robin
mode. This commit fixes bind() error reporting in shared handle mode.

Fixes #5774.
test: cluster: add 'bind to privileged port' tests