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

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