Fixed `opts.supportedLngs`

Bug fixes and improvements for the `supportedLngs` option.

`supportedLngs` now may be:
 - an array-like object of supported locales;
 - a regexp or any object implementing a `.test(locale)` method;
 - a string representing a single locale;
 - false, disables locale format validation;

It now defaults to a simple regexp that validates common locale formats.

I've also extended the effect of `supportedLngs` to the querystring and accept-language methods for setting a locale.

More details may be found in the descriptions for the changesets.

I've tryed to run `make test` but the output wasn't very helpful. There's probably something missing in my environment (or skills) to run the tests properly since I've just started developing with node.js.

Anyway, thought to let you check it out as it is, just in case you could help with the tests... I'll try to see what's going on with the tests later today or maybe tomorrow.

Btw, thanks for sharing this code. : )