[CB-3384] Add a length getter for UriResolver. Change from interface -> abstract class.

Thinking here is that we can maintain compatibility going forward with a
base class as opposed to interface by having new methods on it have
default implementations.