Fix some warnings caused by initialization lists being out of order
Make toolkits/graphical_models/utils.hpp non-executable
Fix graphlab not compiling with clang (Apple LLVM version 4.2)

Clang is a bit more strict than g++, and throws an error with this
code:

```
#include <vector>

template<typename T>
void add(T& t1, const T& t2) {
    t1 += t2;
}

template<typename T>
std::vector<T> operator+=(std::vector<T>& v1, const std::vector<T>& v2) {
    for (size_t i = 0; i < v2.size(); ++i) {
        v1.push_back(v2[i]);
    }
    return v1;
}

int main() {
    std::vector<int> v1;
    v1.push_back(5);
    std::vector<int> v2;
    v2.push_back(6);
    add(v1, v2);
}
```

The reasoning behind forbidding this code can be found here:

http://clang.llvm.org/compatibility.html#dep_lookup)

The fix in this case is pretty simple, it just requires moving
the `operator+=` in the distributed_graph_test test to before
the import of the graphlab headers.
Make sure __builtin_ia32_crc32di is properly detected

Without `clang -msse4.2 ...`, clang will not enable
the `__builtin_ia32_crc32di` intrinsic. However, because
of the way the config check for that intrinsic was written,
clang noticed that the call in the test had no observable
effects, so it optimized the call away. By returning
the result of the call, we guarantee this call will
actually be called, and it will properly error out the
test by complaining that the `__builtin_ia32_crc32di` is
an unknown symbol.
Merge pull request #39 from Lab41/master

Fix compiling graphlab HEAD against master on Macs