Restored setup/loop and eliminated synchronous calls outside them

The code to handle both synchronous and asynchronous calls was getting
confusing, so I am eliminating all synchronous implementations and
providing a solution for those who want synchronous calls exclusively
within a node-fiber. To invoke a fiber, simply define setup/loop.

Example:

````javascript
var b = require('bonescript');

global.setup = function() {
    b.pinMode('P9_14');
};

global.loop = function() {
    var x = 0;
    b.analogWrite('P9_14', x);
    x += 0.1;
    if(x >= 1.0) x = 0;
};
````
pinMode: remove synchronous logic
digitalRead: remove bad reference on analog input code
Tolerate some calls without callbacks provided

Assume asynchronous is alright, despite not having a callback. This is a
bit of a risky choice that might surprise some users, but everyone is
going to need to be told about making synchronous calls within setup()
and loop() anyway very proactively.
sleep: created

May only be used within setup() or loop(), but might as well bring it
back if we are running node-fibers.