Moved spdiag out of an anonymous namespace.

It is a function meant to be called by clients, not an implementation detail.
Merge remote-tracking branch 'bska/master'
Updated for helper class name change (UpwindSelector).
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.
Fix multiple symbol issue.
Work in progress on adding wells.
Add spdiag() prototype to silence GCC 4.6 warning.

GCC's flag -Wmissing-declarations requires that a valid prototype
exist for non-template (global) functions prior to the corresponding
function definition.
Merge remote-tracking branch 'atgeirr/master'
Merge upstream changes.