Add support for incremental updates

I noticed that running `grunt nggettext_extract` overwrites existing `.pot` files and all existing strings are removed. Since this is a really annoying issue, I took some time to improve the extraction task.

It now loads the `.pot` file referenced by `file.dest`. If it succeeds, it uses the data read from the target file as the catalog. Otherwise, it instanciates a new catalog with some default values (as before). Since `PO.load` is asynchronous, I needed to adapt the existing code to make it work with Grunt.

Note that a new dependency `async` has been added since `grunt.utils.async` is deprecated (http://gruntjs.com/api/grunt.util#grunt.util.async) and cannot be used.

I also added a new test to cover the incremental update of an existing `.pot` file. It checks that all strings that still appear in the template are not overwritten while new strings are added (and deprecated ones removed).