Add a missing RemoveReference
Let makeOption return a unique_ptr<Option<...>>

This allows to attach an option to the command-line parser at construction time.
Use makeOptionWithParser instead of makeOption(Tag) and move the tags into OptionBase
Add value_type for MapParser
Remove unique_ptr overloads for add
OptionGroups may be specified at construction time
Remove unused declaration