Gave the whole optioon handling a work over.

A variable of program_option_t will contain a pointer to a previously defined structure
this contains all the info need to work through the program

The use of this structure enables reuse of code as the same block is used to check all
option type , a function pointer holds the address of the action function.