Fix tutorial 12 build command for Mac
Change Target::Features from a set of bitmask to a plain enumeration.

I also changed their order to group related features and added operators | and
|= to make the transition easier and simplify the notation when specifying
multiple features. I'm undecided whether this is a good idea or a more
explicit API using methods such as "set" or "add_feature" would be better.

Advantages:
- easier to reorder, add, and remove individual features
- has_feature(...) arguably easier to read and harder to get wrong

This uncovered the following bug in CodeGen_X86.cpp, which effectively
prevented packusdw instructions from being generated:

    if (!(target.features | Target::SSE41) && pattern.needs_sse_41) continue;

should probably have been

    if (!(target.features & Target::SSE41) && pattern.needs_sse_41) continue;
Merge branch 'master' into target_features
Minor change to SpecializeClampedRamps.cpp that applies the mutator recursively until the stmt is fixed. This allows us to specialize all of the clamped ramps rather than just the outermost.
Reuse current SpecializeClampedRamp instance for recursively mutating the stmt.
Force a GPU flush in using the gpu tutorial.

Otherwise it could finish timing before doing work on some platforms.
Changed SpecializedClampedRamps to produce a single if stmt, rather than multiple nested stmts.
Merge pull request #446 from kree-colemcalughlin/specialize_all_clamped_ramps

Specialize All Clamped Ramps
Move BitSet to Internal namespace
Explicitly mention that Features and to_string() must be updated together
Add BitSet::reset, change method names to match std::bitset
Merge branch 'master' into target_features
Merge branch 'master' of github.com:halide/Halide
Plausible-looking fix for trunk llvm.

However it segfaults inside the enginer builder.
Further investigation required.
Merge branch 'master' of github.com:halide/Halide
Merge pull request #445 from halide/target_features

Change Target::Features from bit masks to a plain enumeration.
Fixed huge unnecessary IR generation for high dimensional tuple buffers.
Fix to handle jit component going away.
resize: also compute average running time
Simplify function names in opengl.cpp

Now that everything lives in Halide::Runtime::Internal, there is no need for
long function prefixes anymore.