Don't treat bool as integer for casting (#478)

Giving it a separate castSpecialType means casting to bool will use
the default castFunction instead, raising an InvalidCastException.