first steps to make command argument types extensible
 * Defined IRoomieCommandArgumentType, which has several implementations in the Roomie.Desktop.Engine.RoomieCommandArgumentTypes namespace
 * Made RoomieCommandArgument.Type of type IRoomieCommandArgumentType instead of String
 * Made and used a temporary String-to-IRoomieCommandArgumentType conversion method (Later I will have to update all of the ParameterAttributes on the RoomieCommand subclasses to use the new class types instead of strings)
 * Updated RoomieCommand to use the new Validate methods that are specified in IRoomieCommandArgumentType
a bit of refactoring around argument types
also added list of argument types to RoomieEngine
even more types refactoring
 * It looks like ParameterAttribute won't be able to directly reference the class types :(
 * Gave each type a public const string Key for use by ParameterAttributes above RoomieCommands so that at least that reference can be checked by the compiler
 * Added Commands.ValidateParameters that will check the parameter types at runtime
 * Referenced the types in the new way in Core.Beep
replaced literal string "Boolean" references in ParameterAttributes with BooleanParameterType.Key
referenced StringParameterType.Key instead of "String"
referenced TimeSpanParameterType.Key instead of "TimeSpan"
augh... and the rest too!
created StingParameterType to be used instead of [Parameter("Name", StringParameterType.Key, "Default)]
Even better than the solution from earlier today!  I also did this update with this super fancy regular expression:

find: \[Parameter\((.*?), StringParameterType.Key
replace: [StringParameter($1
did the same thing for boolean parameters
Forgot to mention: I also did a "find all usages" on the BooleanParameterType.Key to catch the subclasses of ParameterAttribute that specified BooleanParameterType.Key
added and used ByteParameterAttribute, DateTimeParameterAttribute, IntegerParameterAttribute, and TimeSpanParameterAttribute