Make Instance.refresh() extra careful about recursive loads

This simply makes sure that the instance copy that we fetch to
refresh an instance can not trigger lazy loads itself due to
a bug in get_by_uuid() or below. This hasn't actually been the
cause of any recent bugs, but this makes it much more careful.

It also makes sure that obj_load_attr() refuses to do its work
if self._context is None, which was previously only being
enforced for remoted calls.

Change-Id: I76f433af34620045b079e0a2c30c60b28a4ce525
Remove unecessary `get_boolean` function

`get_boolean` is entirely equivalent to `bool_from_string` so just use that
instead.

Change-Id: I3cdcea2db882d49f6b4208ea579cff6f898c29e2
Remove `utils.last_octet`

Not used since 142f6f6d3e7ce63e0a34cf68c8473d047766e093 (over 3 years ago!)

Change-Id: I2a98c38682aabd8ef8cad8151075f8ea64dbead8
Prefix `utils.get_root_helper` with underscore

This function is internal to `utils` so should be begin with an underscore to
clarify that it's private.

Change-Id: I6fdb0c7d46867347d74b79ec1ed5749ef597258a
Merge "Make Instance.refresh() extra careful about recursive loads"
Merge "Remove `utils.last_octet`"
Merge "Prefix `utils.get_root_helper` with underscore"
Merge "Remove unecessary `get_boolean` function"