Complete dynamic proxy implementation.

Complete ribbon dynamic proxy implementation.
According to the HTTP spec:

"Multiple message-header fields with the same field-name MAY be present in a message if and only if the entire field-value for that header field is defined as a comma-separated list [i.e., #(values)]. It MUST be possible to combine the multiple header fields into one "field-name: field-value" pair, without changing the semantics of the message, by appending each subsequent field-value to the first, each separated by a comma. The order in which header fields with the same field-name are received is therefore significant to the interpretation of the combined field value, and thus a proxy MUST NOT change the order of these field values when a message is forwarded."

So I would say by default we shall ignore or not allow it. Right now in the code the last entry wins (overrides the earlier). We could alternatively detect it and throw an exception.
Question is if we shall provide a dedicated mechanism to pass multiple headers with the same name. The HTTP spec states that it should be equivalent to merging all of them with comma as a separator, and so  Ribbon user can just do that and put all the values into one header annotation directly. Since having support for multiple headers is more a syntactic sugar than a new feature, I would stay with current implementation.