[[ Bug 14029 ]] Read server scripts even when not memory mapped.

In the original implementation of the server script loader, it was
assumed that:

1) if a file is memory mapped, MCSystemFileHandle::GetFilePointer()
   returns the address of the memory mapped buffer.

2) if a file was not successfully memory mapped,
   MCSystemFileHandle::GetFilePointer() returns NULL.

Assumption 1 is correct.  Assumption 2 is not; in that case,
GetFilePointer() returns a FILE *.

In almost all cases, a local file *can* be memory mapped, and so the
fallback case is not ever used.  However, the Linux kernel (correctly)
refuses to map a zero-length file.

This patch changes the server script loader to use
MCS_loadbinaryfile(), since this is a clean way to obtain the raw
contents of a file.
[[ Bug 14029 ]] Use MCMemoryCopy() instead of memcpy().
Merge pull request #1487 from peter-b/bugfix-14029

[[ Bug 14029 ]] Read server scripts even when not memory mapped.