I'm concerned about having `__init__` change the bvec on it's argument here. We have few objects in dipy (including GradientTable) which use a lot of @auto_attr, and when attributes of the object are changed like this there is no way to ensure consistency (In fact I think we should change @auto_attr to return read-only arrays but I digress). I think these objects should be considered immutable by convention and we can either make a copy here or have GradientTable check for nans in it's init so the check here becomes unnecessary.