tessel/runtime#535 r=@tcr: Requires string splitting to return empty string. Fixes #534
tessel/runtime#536 r=@tcr: Adds test for shadowed this variables. Closes #361.
Revert "swapping to tm_timestamp to avoid TC wrap"

This reverts commit 687680d3bffe174807f852d0c46efa684d6a156f.
Merge #89 r=@kevinmehall: Revert "swapping to tm_timestamp to avoid TC wrap"

See my comment on the PR for why there was no issue with integer wrap: https://github.com/tessel/firmware/pull/88#discussion_r18419604.

This adds an issue, however: if this is made asynchronous and the time is set while a C3000 operation is pending, the time will jump forward and the timeout will happen early. For things like timeouts, you want a monotonic time, not wall clock time. Since firmware has no reason to care about wall clock time, any use of `tm_timestamp` in firmware is suspect. Firmware shouldn't be using floating point, either.
v0.1.18
tessel/runtime#545 r=@kevinmehall: Bumps colony-compiler version.
give error handler a chance to attach
Merge #91 r=@kevinmehall: give error handler a chance to attach

fixes https://github.com/tessel/runtime/issues/509

Previously this worked:

```js
wifi.on('error', function(err){
	console.log("error", err);
});

wifi.connect({
    security: "wpa2"
    , ssid: new Buffer("test")
    , password: "test"
    , timeout: 10
});
```

But this did not:

```js
wifi.connect({
    security: "wpa2"
    , ssid: new Buffer("test")
    , password: "test"
    , timeout: 10
});

wifi.on('error', function(err){
	console.log("error", err);
});
```
Runs "make update" on runtime.
Merge #92 r=@tcr: Runs "make update" on runtime, not "npm install".
Refactors Pin class to work with node eventemitter.