Fix require() parent directory traversal

This changes some of the require traversal logic to fix #276. Leaves the misleading log discussed in #278 but does also fix up a related code path.

Test result on master before patch:
total ............................................... 861/874

With patch:
total ............................................... 863/876

@natevw, @rwaldron We merged `ttt` (a fork of [`tt`](https://www.npmjs.org/package/tt)) into `tinytap` and started using that in tests company-wide as of yesterday. We considered larger testing frameworks like `mocha` but they took too long to load on Tessel. `tinytap` gives us a smaller test file runner and tester. 

Example usage:

```.js
var test = require('tinytap');

test.count(numberOfTests);

test('testing some functionality', function(t) {
  t.ok(truthyVariable, 'oh no, it was falsy');
 someFunction(function(err) {
  t.equal(err, undefined, 'unexpected error thrown when testing some functionality');
  t.end();
 });
}); 
```

You can also check out the [climate module tests](https://github.com/tcr/tinytap) for a good example of how to use tinytap.