promises, promises

see commit messages for details; feel free to omit commits you don't like

aside: I'm not quite sure why `tankService.getTanks` needs to cache the response (thus effectively turning it into a singleton*)?


\* at least in the context of the respective service instance; [AIUI](http://stackoverflow.com/a/15666049), Angular generates a new instance whenever `tankService` is used as an injectable argument (no matter whether it's a factory or service)