Add getValue helper refactor

Adds a simple helper functions to abstract a common internal pattern where a value can be a value or the result of some function. I couldn't decide whether there should be a `defaultVal` or an `args` param, I went with the args param as it seemed more useful internally. A `getDefault` method may be another useful helper to consider in the future
Just to elaborate a bit a function is considered an object by `_.isObject`