Add protocol to handle get for element and traverser to simplify syntax

Move prop-pred to element.clj