Refactor feature_layer.js. Maybe a little too much, but it's more
organized now. There is probably a midpoint to the separation of
concerns here.