Rename DatasetArray.focus to DatasetArray.name

This is not mere bikeshedding -- "name" much more clearly implies the meaning
of this attribute and the fact that it should be a string. I think it makes
complete sense that array.name is the name with which the variable is associated
in the attached dataset.

"Focus" is ambiguous, and is a left-over from when I called DatasetArray
"DataView".

For an additional level of security (to protect users from themselves), I
have also hidden DatasetArray.dataset and DatasetArray.name behind properties
so they cannot be modified in-place (I can't think of any case in which this
would make sense instead of creating a new DatasetArray).

Note: For obvious reasons, this change will conflict with most of the current
pull-request. I will rebase whichever change is done last.