The goal of this function is allow easy and intuitive parsing of user inputs. The function supports three common way to pass variables to functions:
(1) "Name value" pairs- the "variable name" string is followed by the "variable value". The inputs orders is arbitrary, and the user can specify the relevant inputs.
(2) Structure input- the structure field names will specify the variable name, and field content is the variable value.
(3) Regular case, where variables name is defined by their position in function call.
Both methods "name-value" pairs and structure can be combined. User are advised to load default values, before calling this function, to guarantee all variable are initialized.
User inputs will be interpreted by the default Matlab way, only if none of the inputs was interpreted by the other two methods.
Note: Matlab "inputParser" does basically the same, but I find my function easier to use.
Some bug fixes and minor improvements