I2C Pressure Sensor

This is wrong:

while(Wire.available() < 4 );

The line "Wire.requestFrom(addrs, 4);" is a complete I2C session (devices is addressed, data is requested and received and put in a buffer, I2C session is closed).

The "Wire.available()" returns the number of bytes in the buffer. But the I2C session has already ended. So waiting for something is wrong.
The return value of "Wire.requestFrom()" is the same as "Wire.available()" (until you start reading data from the buffer.

I didn't read all the posts, but according to the datasheet, the I2C address is 0x78.
Did you run the i2c_scanner ?
http://playground.arduino.cc/Main/I2cScanner

I think you only have to read 2 bytes.
It is possible to read more bytes during the same I2C session, but that is to increase the data rate.
For now, you only want to try to communicate with the sensor.
I assume that the first byte is the high byte.

Wire.requestFrom( addrs, 2);  // contents of the two registers
if( Wire.available() == 2)
{   
  byte hibyte = Wire.read();
  byte lobyte = Wire.read();
  unsigned int pressure = word( hibyte, lobyte);
  Serial.print( pressure);
}
else
{
  Serial.println( "Didn't receive 2 bytes");
}

Please remove the humidity and temperature part. It is confusion. You should only use this as a test sketch to try to communicate with the sensor.