U.S. cancels VaxGen's $877M vaccine contract