Fix use of Header Data and empty msgid string

There is, in spec, an option for header data, however using it properly should be as such:

# Translation file for en_US
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

But the empty msgid previously messed up the .mo conversion somehow. by assigning the Header to a space character we hopefully avoid any collision with real translation needs, and allow for the Header to exist.

Also implemented David's (http://www.josscrowcroft.com/2011/code/php-mo-convert-gettext-po-file-to-binary-mo-file-php/#comment-150555) amend to allow for empty msgstr data as per spec (empty msgstr should return the original msgid)