Add support for TPG authentication

TPGs now have auth/* just like NACLs. Refactor auth property code.

TPG authentication requires demo-mode (generate_node_acl=1) to work but
this commit doesn't make sure it's set.

Signed-off-by: Andy Grover <agrover@redhat.com>
Add fabric.discovery_authenticate_target support

It was missing. Now we match tpg/nacl auth.

Signed-off-by: Andy Grover <agrover@redhat.com>
Rename 'acls_auth' feature to 'auth'

This feature now includes TPG auth, so the name no longer fit.

Signed-off-by: Andy Grover <agrover@redhat.com>
Use partials for discovery auth

We can't use for enable_auth or authenticate_target because those don't
return strings.

Signed-off-by: Andy Grover <agrover@redhat.com>
authenticate_target can't use _get_auth_attr

Because it doesn't return a string. Open-code support for it, and also
handle it being absent for TPG.authenticate_target.

Signed-off-by: Andy Grover <agrover@redhat.com>
Simplify MappedLUN._get_write_protect

Signed-off-by: Andy Grover <agrover@redhat.com>