CLJS-617: type-hinted ^not-native calls, double expr evaluation

We just needed to use this-as consistently in protocol fn
implementations. The compiler when emitting a direct proto invoke skips
the first arg and sets it to null.