Add getopt long options support