Improve arch detection and don't overwrite flags needed for building (e.g. SSE)

As discussed on IRC, two commits:

1. Simplify CPU/architecture detection and default to "none" instead if "i686" (which attempts building with SSE on all unknown architectures).
2. Distinguish optimization flags (overridable) from compiler flags needed to build, e.g. for SSE.