Blood proteins 'warn of cancer seven years before diagnosis'