Now that weak is represented as an optional type, these need the same ptrtoint/inttoptr hacks that Chris added to the pure Swift versions.
Swift SVN r18586
wrap it in an 'id' type in the standard library.
Also fix a bug noticed by inspection where initWithTake for
function types wasn't entering a cleanup for the taken value.
This probably doesn't matter for existing possibilities, but
it's potentially important under exceptions.
Swift SVN r1902