Added basic i18n framework that loads all messages files with a locale extension
using goconfig

What's been added:

- Message files-specific directory (/messages from the Revel base path)
- Recursive messages files loading; a config.Config instance mapped to
   each locale
- Basic API:
	* MessageLocales() to get the currently loaded locales
	* GetMessage(locale, name) to retrieve a message with the given  name from
	  the given locale

What's still missing:

- Messages with message arguments (e.g. GetMessage(locale, name, args...))
- Same-locale message file merging

  Currently, an error is generated when there is more than 1 file for a same
  locale. This is a goconfig limitation. If we keep goconfig, this should be
  added there; something like config.Config.Merge(*config.Config).

- View-scoped GetMessage() hook
- Default date formats and other date-related stuff
- CLI tools for checking messages files

  Some ideas:
    - Generate a messages files coverage report (missing messages, etc.)
    - Malformed message files (malformed locales, non-UTF8 encodings, etc.)
    - ...
Merge remote-tracking branch 'upstream/master' into i18n
Added support for messages with variable arguments

- Refactored GetMessage(locale, name) to Message(locale, name, args...)
- Refactored/expanded tests for Message
Fixed Message() benchmark accuracy and verbosity
Added test case and benchmark for Message() with folding and arguments
Fixed discarding logger initialization being part of the benchmark
Harness port configuration
Removed the address from getFreePort() because net.Listen("tcp", ":0") will listen on all local addresses.
Added support for regions in locales given to Message()

For instance it's now possible to pass a full locale (language-REGION) to
the Message() function. When the given region was not found or the message
does not exist for the given region, an attempt is made to find it in the
DEFAULT section.
Merge pull request #45 from nikoudel/harnessPortConfiguration

Harness: 
- Proxy requests to (app.addr) instead of "localhost"
- Add configuration key "harness.port" to set the port on which the harness starts the app (by default it is a random free port).
Integrated goconfig support for config file merging

From now on, this version depends on the merge-capable version
of goconfig.
Merge remote-tracking branch 'upstream/master' into i18n
Break the watcher config into 3 parts

watch - if false, all watching is disabled.
watch.code if true, will use the harness to reload code
watch.templates if true, will watch templates and reload
watch.routes if true, will watch routes file and reload

All watching defaults to true, so the common case of watch=true will
enable all watching, and watch=false will disable all watching.
Don't rely on builtins being exported

Fixes #38
Added Accept-Language HTTP header parsing to Request
Merge remote-tracking branch 'upstream/master' into i18n
Initialize Args with an empty map.
Fix specifying port on command line.
Parse config before checking for port override.
Fix: Don't override the port if no override is specified!