The problem with leaving it undefined is that `inv` has to check whether `pinv` has been initialized yet.  Is that even possible if I leave it undefined in the constructor?

Parameterizing by the appropriate type, i.e. `Plan{T}` instead of `Plan`, is hard here because the input type of the inverse plan may be different than `T` (e.g. for an rfft plan).

`inv(p::Plan)` has a type assertion to tell Julia that it always returns a `Plan`, so I'm not seeing where there will be significant type-inference slowdowns caused by this.