dgram: fix double implicit bind error

Calling send() on an unbound socket forces an implicit bind to
a random port.

332fea5 made the 'listening' event asynchronous. Unfortunately,
it also introduced a bug where the implicit bind was tried more
than once if send() was called again before the first bind operation
completed.

Address that by keeping track of the bind status and making sure that
bind() is called only once.

Fixes #4499.
os: change CPU time from Integer to Number

CPU time values must be Numbers, not Integers, as they can be too large
for Integers on 32 bit platforms.
deps: update v8 to 3.15.11
bindings: update to new v8 apis

GetPointerFromInternalField() is deprecated now, we should use
GetAlignedPointerFromInternalField().
test: make tests work with newer v8
v8: remove optimization switches

Remove compiler switches from $(TOPLEVEL)/deps/v8/build/common.gypi,
we set them globally in $(TOPLEVEL)/common.gypi.

Commit 7b4d95a introduced the switches again, resulting in V8 getting
built without any optimizations.

This commit is essentially a rehash of commit 4b8629d.
node: remove ev-emul.h

libev has been deprecated since v0.6. Add-on authors have had two major
release cycles to upgrade. Out it goes.
repl: allow overriding builtins

Don't give names of built-in libraries special treatment.
Changes the REPL's behavior from this:

  > var path = 42
  > path
  A different "path" already exists globally

To this:

  > var path = 42
  > path
  42

Fixes #4512.
Merge remote-tracking branch 'origin/v0.8'

Conflicts:
	configure
	deps/uv/src/unix/core.c
	deps/uv/test/test-fs-event.c
	src/node_version.h
windows: fix perfctr crash on XP and 2003

Some performance counter related functions are not available on Windows
XP and Windows Server 2003, which caused node to call a NULL pointer.

Closes #4462
Closes #4511
windows: improve Visual Studio Express build support

* Moved generated files to a clearer directory.
* Improved detection logic for ctrpp.exe tool.

Closes #4482
REPL: fix floating point number parsing

In JS, the expression ".1" is a floating point number.  Issue 4268 concerns the
REPL interpreting floating point numbers that lead with a "." as keywords.  The
original bugfix worked for this specific case but not for the general case:

    var x = [
        .1,
        .2,
        .3
    ];

The attached change and test (`.1+.1` should be `.2`) fix the bug.

Closes #4513.
v8: update to 3.15.11.5
object_wrap: add missing HandleScope

by Sven Panne's suggestion, see [0] for details.

[0]: https://code.google.com/p/v8/issues/detail?id=2468
v8: remove optimization switches

Remove compiler switches from $(TOPLEVEL)/deps/v8/build/common.gypi,
we set them globally in $(TOPLEVEL)/common.gypi.

Commit 7b4d95a introduced the switches again, resulting in V8 getting
built without any optimizations.

This commit is essentially a rehash of commit 4b8629d.
fs: pool size coincide with ReadStream bufferSize

pool size of file reading in ReadableStream can be adjustable
with a bufferSize option.
fs: remove unused default option in WriteStream

No bufferSize option is used in stream.Writable and fs.WriteStream.
doc: improve example of process.hrtime()

The example clarifies now that diff[0] * 1000000000 + diff[1] equals
the result in nanoseconds.
src: use static_cast where appropriate

Use static_cast instead of reinterpret_cast when casting from void*
to another type.

This is mostly an aesthetic change but may help catch bugs when the
affected code is modified.
net: add localAddress and localPort to Socket