Implementing sceneObject.draw for d3 features

In regards to #174.  @aashish24 and I discussed this and came to the conclusion that for performance reasons we don't want to automatically redraw the scene on every change.  This PR makes explicit the expectation that the features must be drawn manually by providing a `draw` method on every `sceneObject` instance.  The base `sceneObject.draw` method calls `draw` on every child in the subtree.  This means that `map.draw()` will redraw all layers, `featureLayer.draw()` will redraw all features in the layer, and `feature.draw()` will redraw a single feature.  With method chaining, we can do this:

```javascript
var map = geo.map({'node': '#map'});
map.createLayer('osm')
  .draw();
map.createLayer('feature')
  .createFeature('point')
  .positions([])
  .style({})
  .draw();
```
I think we will need only one. Because let's say if we call parent draw() from feature draw() then it will go in infinite loop. Sine the renderer is own by the layer either we just have to call children draw or _render on the renderer(). 

I guess s_draw() makes most sense from the consistency point of view.