rename BidiagonalResult to IBidiagonalResult
change decompose to a static method, add a private constructor, use a temporary BidiagonalRow object to compute IBidiagonalResult object. All this is to ensure immutability