Added size() member for ease of use.

This makes it easier to write for example templated code
acting on either AD vectors or non-ad vectors.
Added superset() functions.

The reverse of subset(), superset() takes a sparse representation of a vector
and makes a full representation of it.

Also added a little documentation.