merging cache headers instead of overwriting them all

fix #75 

please review thoroughly. the tests think its ok, but i am not sure if i thought about every possible situation.
What exactly is this supposed to do?