Ticket #4510: implicit_value and positional options conflict

Add a has_implicit_value method to check if an implicit_value was set.  This is used to avoid processing positional arguments for options with implicit_value.

The change seems simple enough, however, I am not nearly as familiar with the library, and I could not build this using the git repo to test it, as there seems to be some problem with building all the boost libraries on the main git repo.  However, I did test it by applying the changes to the latest release of boost (1.57.0) and it seems to work fine.