Generalized API

Here's the pull request that I suggested in #2.  I was mistaken about Dust's interface, though.  According to [Dust issue 238](https://github.com/linkedin/dustjs/issues/238), the flag that I mentioned is some kind of reverse compatibility to retain leading whitespace.  I suspect the intended use is something like plain text files: when the normal compression gets applied, new lines would turn into joined words.  At any rate, that use doesn't suit my needs, so I've entirely disabled whitespace optimization rather than set that flag:

```
dust.optimizers.format = function(ctx, node) { return node; };
```

Rather than adding a second optional parameter to the signature, I've implemented an options blob.  Tests pass and the version has been bumped.  (There's reverse compatibility if a function is provided instead of an object.)