node: add inTick and lastThrew to infoBox

To prevent all unnecessary calls to JS from MakeCallback, the remaining
two immediate return variables inTick and lastThrew have been added to
infoBox. Now MakeCallback should never need to call into JS unless it
absolutely has to.

Also removed Tock. Performance tests showed it was at least as fast or
faster than using a normal object, and this is more readable.
cpplint: make lint rules closer to node's source

* Support C-style header guards (/* comments */)
* Support `class NODE_EXTERN something`
* Support `}  // extern "C"` closures
* Ignore header order
* Ignore `long/short` usage (because of OpenSSL's API)
src: lint c++ code
make: add `cpplint` to `test` target

Also, exclude some C-headers, machine generated headers and tweaked
sources from cpplint file list.
etw_provider: unbreak windows build
doc: remove travis status image

The project has moved to Jenkins. The status image is no longer
needed and perpetually shows a failed build. Remove it.
tools: cpplint: fix up build/include_order rule

Change the build/include_order rule to match our preference:
project headers before system headers.

The rationale is that system headers before project headers makes it
easy to slip in bugs where a project header that requires a definition
from a system header, forgets to include the system header but still
compiles because the source files that include the project header
coincidentally include the system header too.

A good example is the size_t type. A project header file that needs the
definition of size_t should include stddef.h but forgetting to do so
will probably go unnoticed for a long time because almost every other
system header includes stddef.h (either directly or indirectly) and
almost every source file includes one or more system headers.

Ergo, project headers before system headers. It's a good thing.
src: more lint after cpplint tightening

Commit 847c6d9 adds a 'project headers before system headers' check
to cpplint. Update the files in src/ to make the linter pass again.
build: un-break the windows build
build: disable some msvc compiler warnings

These are not real problems, and they are so plenty that actual problems
are hidden from view.
src: don't include <string.h> twice in src/node.cc
cpplint: exclude src/node_win32_perfctr_provider.cc

It's forced to violate the build/include_order rule because it includes
a header file generated with ctrpp.exe that doesn't include perflib.h
itself.
os: add mac address to networkInterfaces() output
tls_wrap: parse tls session ticket extension

And, if present and non-empty, don't invoke `resumeSession` callback.

fix #5872
test: add mac to test-os

Fix test from 30701d6.
benchmark: update misc to new v8 API
src: Replace macros with util functions
build: fix --without-ssl build

Build breakage accidentally introduced in 8e29ce9 during code cleanup.

HAVE_OPENSSL is always defined (as either 0 or 1) so use #if rather
than #ifdef.

Fixes #5979.