Change semantics to be more like angular-gettext.

It's excessive to define IDs for all strings if we only need it for the 1% of
strings that are ambiguous. So this commit makes the ID optional.
Use node-po to generate po file.
More work on l10n and instrumenting most source files.
Custom branch of grunt-preprocess no longer needed. Upstream changes have been merged.