Shale/idempotency ids in headers

R? @cosn 

cc @kyleconroy 
i'd be more comfortable with it taking params and having the common things populated lower in the stack rather than the client