Add locales for client-side (bug 968925)

Using the locale data from webpay and compiling it to json/js this adds the hook-up for requiring the necessary locale data at runtime (if it's not en-US or db-LB (debug)). 

The debug locale i18n-abide uses is done at runtime (in the middleware for node) and is useful for checking rtl (You can see there's some minor tweaks needed (albeit low priority)). To add that I needed to make a few fixes to gettext so it can bring in gobbledygook for runtime strings client-side too.

The other issues were following an update to po2json which required wrapping the json output. The good news is newer po parser is now much faster to compile the JS/JSON. Also this already squishes the output so it takes up less space which is another side-effect of the update.

The dir attribute is now updated if you use a query-string override.

Note: the public/lib stuff is mostly 3rd party additions. The i18n-abide-utils one is adapted and that needs externalising at some point.

![screen shot 2014-02-05 at 19 06 59](https://f.cloud.github.com/assets/1514/2222211/4361e1f6-9a62-11e3-8a1e-c897ddffe3a7.png)![screen shot 2014-02-05 at 19 10 36](https://f.cloud.github.com/assets/1514/2222245/d1a6d8ea-9a62-11e3-8904-fea9ea965ec1.png)

![screen shot 2014-02-05 at 19 10 50](https://f.cloud.github.com/assets/1514/2222248/da8e1d74-9a62-11e3-8c4a-5d633ebad4a6.png)![screen shot 2014-02-05 at 19 06 36](https://f.cloud.github.com/assets/1514/2222213/464ae82c-9a62-11e3-9ec1-03664a22781c.png)