Add HasBasis instances for Maybe, (:->:), (:-*)

`Maybe`, `(:->:)`, `(:-*)` already have `VectorSpace` instances, so why not give them compatible `HasBasis` instances too.

By the way, can I ask why `:-*` is defined in terms of `Sum`?  As far as I can tell, the point of `Sum` is to create a `Monoid` instance, but that’s not used or exposed in the context of linear maps.  So it seems to just add extra wrapping overhead.