V0.2.0 breaking changes

@devoncarew can you please have a look before I land these changes, as I think they will affect Spark.

I want to remove the `new Mode.forFile` factory now before too many folks rely on it.  It was incomplete, static, and fairly subjective.  I'm guessing that you guys plan to move to something more configurable as well, so for now you can probably copy / paste the extensionMap into your code as-is until you get to that feature?

The `getAnnotations() / setAnnotations()` change is pretty much only win, as it helps give a place to hang better documentation and intent, and it matches the javascript 1:1

thanks!