Define option-set with special attributed options class

Add support for defining the option set using attributes on a class. I avoided use of linq & var based on previous feedback from other pull requests.

Example usage:

        public class Options : AttributedOptionSet
        {
            [Option("name=", "Service Name")] public string Name;
            [Option("install|inst|i", "Install Service")] public bool InstallSwitch;
        }

        private static void Main(string[] args)
        {
            var options = AttributedOptionSet.Parse<Options>(args);