break asSettable.set into two methods

this makes argument-processing a separate method, so it's easier to
override/extend the functionality of set (by overriding the _set method)

pertains to siq/mesh#20