public static <T> void copy(final T source, final T dest, final UpdateAction updateAction) {
        copy(source, dest, null, updateAction);
    }
Deep copy the field values of stroom POJO object trees from source into dest.
Relies on the public getters/setters so private fields won't be copied.
NOTE: Only deep copies objects in packages starting with 'stroom'
stroom-util/src/main/java/stroom/util/config/FieldMapper.java