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();
```
What I had in mind is that the `feature.draw` method would only draw that one feature, so if the user creates multiple features and then calls draw on one of them, then only that one should appear.  For this, it doesn't make sense for the feature to call `layer.draw`.  This is how the d3 layer currently works.  As I mentioned in the comments, the `_render` call is there so that the vgl features continue to work.

The d3 layer doesn't currently implement `_render`.  There is an `_updateFeatures` method that essential does that I should probably rename it now that I think about it.