Use memmove() when memory regions may overlap
Use memmove() when memory regions may overlap

As memcpy(3) states, the source and destination memory regions must not
overlap. In the case of ruleDots.chars, the only situation where the two
areas would not overlap is if a single byte was being copied, which is
almost always not the case.

Fix this by using memmove() instead, which allows the memory areas to
overlap.

Found by Coverity.

liblouis/liblouis,liblouis/liblouis,BueVest/liblouis,BueVest/liblouis,hammera/liblouis,hammera/liblouis,BueVest/liblouis,liblouis/liblouis,hammera/liblouis,BueVest/liblouis,BueVest/liblouis,BueVest/liblouis,hammera/liblouis,liblouis/liblouis,liblouis/liblouis,liblouis/liblouis,hammera/liblouis,hammera/liblouis