Add a .gitignore file; use defined operator for inverting a color

The .gitignore file prevents build targets from getting accidentally included.

The other changes should be neutral. See the definition of the ~ operator on Color: 

    inline Color operator~(Color c) {
      return Color(c ^ BLACK);
    }

The benchmark shows it's performance neutral although I didn't verify by disassembling the binary.