Imported from upstream GIT
Added .gitignore and README.md
Sparse arguments
Lazy evaluation for Option.Description