changed the way the headers are copied, iterate over useful headers only

updated tests too to have useful headers that are not part of the rest request
replaced Set<String> with String[], added test to make sure the static addUsefulHeader works (from multiple threads as well)