Add Target::with_feature() and without_feature()

This is a bit of syntactic sugar to make setting/clearing Target
features a bit easier when initializing from a const reference; rather
than making a local copy and using set_feature, you can now use
(chained) with_feature() calls to make temporary mutated copies.
Merge pull request #455 from halide/with_feature

Add Target::with_feature() and without_feature()