feat(directive): translate attributes using directive

translate directive can process attributes now. as per #568 
If we pass an array to the translate service then it must be aware of it and of the fact that the promise resolution can be a mix of resolutions and rejections. So we cannot really have "pure" success and failure ```then()``` functions and must deal with an array of translations:

```
[
  {
    translation: string, // translation or translation_id
    success: boolean
  },
  ...
]

```

that we have to loop into and apply ```applyTranslation```