JERSEY-2718 cleanup code

* fix performance issue: StringBuilder is not necessary for compile time constants or final references
* fix performance issue: use a pre-defined array size when converting a list to an array
* fix performance issue: copy an array using JVM's pre-defined utility method
Both *Character.toLowerCase(first)* and *word.substring(1)* are final references and their concatenation 
*final String concatenation = Character.toLowerCase(first) + word.substring(1);* could be a final reference as well. Also the "word" variable itself is effectively a *final value* just as the *char* "first" is which is actually a precondition for "concatenation" being a final value. So in this case no reference reallocation takes place which is the case where StringBuilder should be used. 

In this case:

   private String slowRegularConcatenation(int number)
   {
      // string cannot be final      String s = "{a:" + a + ", b:" + b + ", c:" + c + ", d:" + d + ", e:" + e + ", f:" + f;
      for (int idx = START_ITERATION_FROM; idx < number; idx++)
      {
         s += ", number:" + number;
      }
      s += "}";

      return s;
   }

*s +=* is very expensive as in every iteration a new String instance is created. Here "s +=" should be definitely replaced through StringBuilder because *s* cannot be final. Also the IntelliJ IDE suggests this refactoring here and in other places where effectively final "variables" are being used. 

I was curious myself about this issue and created a micro benchmark: http://blog.loxal.net/2014/11/string-concatenation-vs-stringbuilder.html