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
```

I cannot back my decision based on the get text API (I haven't read it). The reference i read was: 
"The context serves to disambiguate messages with the same untranslated-string. It is possible to have several entries with the same untranslated-string in a PO file, provided that they each have a different context. Note that an empty context string and an absent msgctxt line do not mean the same thing." from [here](http://www.gnu.org/software/gettext/manual/gettext.html).

You can't have duplicate msgid without a msgctx so you assume some default context (empty?) for the ones that don't provide a context or prevent it from happening. Also how to decide which translation to retrieve if one does not have a context? 

I can be wrong (and this complicates the implementation) so maybe we should change it.