Check for duplicate flags.

Check that the short and long flag of each option has not been
defined before adding it to the group. Returns an ErrDuplicatedFlag
in case of error.
Check for duplicate flags.

Moved check to a function and do it only once at the end of the scan.
Update docs to be more conventional
Prefer final returning outside of if
Remove use of underscores in struct field names
Remove redundant anonymous second variable in range
Moved duplicated flag check to  function
Added tests for duplicated flag check.
Move tests into the flags package

This way of doing things avoids refering to the
package name in the tests, which makes life easier for
others who fork the code, because they do not need to
update the imports.
Move example to flags package
Merge pull request #49 from laurent22/master

Check for duplicate flags.
Fix duplicate tests for tests being in package flags
Returns errors from parsing tags
Fix doc style for ErrDuplicatedFlag
Run go fmt
Check for end of tag before expecting :
Format tag error messages
Add ErrorType string for ErrTag
Improved tag error messages
Do not silently ignore unquote errors