msgctxt extraction and compilation

To give support to the new feature on [angular-gettext](https://github.com/rubenv/angular-gettext/issues/53) extraction and compilation of msgctxt was implemented.

The filter argument extraction was not implemented but 2 failing tests were developed to indicate that.
Both js and html extraction were implemented.

* The extraction will add an entry to the .po for each contextualized translation like.
* If repeated msgid are present in the code and some have context and other not an error will be raised and the missing (or unnecessary) context indications must be added (removed).
* On the compilation if there are repeated msgid and some have contexts and others not the compilation will silently ignore the ones that don't have context. 

Compilation Output:
```javascript
msgid: {
    contextA: [translationA, translationA-n],
    contextB: [translationB, translationB-n]
}
```

Extraction Output:
```
file.[js,html]
msgctxt "contextA"
msgid "msgid"
msgid_plural "msgidPlural"
msgstr[0] translationA
msgstr[n] translationA-n
```

@cristiano2lopes Is that a feature of the gettext API? It seems very limiting to be forced to annotate every instance of a msgid with a context just because you want one instance contextualized. Is there something I'm missing that makes this necessary?