Move typecasts to LHS symbols in hiphip to avoid reflection

At Climate, we've encountered this issue a couple of times. If you have a complex expression giving an array, there can be reflection. E.g.:

(let [m {:here {:is {:data [(float-array 100)]}}}]
  (hiphip/afill! [x (-> m (get-in [:here :is :data]) first)]
    (+ x 2)))

This patch tests for that issue and fixes it by making sure the temporary symbol for the array is also type-hinted.