Command line argument parser that uses Generics for automatic parsing