Add support for incremental updates

I noticed that running `grunt nggettext_extract` overwrites existing `.pot` files and all existing strings are drop. Since this is a really annoying issue, I took some time to improve the extraction task.

It now loads the `.pot` files 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).

I also added a new test to cover the incremental updates of an existing `.pot` files.