Revert "remove is-vector? and is-scalar? from protocols"

This reverts commit e916b5471a33714722e86e32e9c9d119e6ac4f33.