librustc: Apply null pointer optimization to slices and closures.
librustc: Remove match arm since we don't allow enum to float casts.
librustc: Don't use NULL as the slice ptr for &[].