use POSIXLY_CORRECT getopt behaviour, making -- separator optional
use memmove in case second part is >= half size of the read block
update Usage string and README