Changed atomics and made vector construction explicit

Atomic operations now use the same value as received from the
cmpexchange, thus guaranteeing that the value we are adding does not
come from stale cache. Vector construction also uses the built in syntax
instead of circumventing them trough a function call.