User $ operator where appropriate.

In the cases where the selector permits it, we now use the positional
operator on atomic updates for embedded documents nested at the first
level deep.

Documents lower than one level will continue to use indexes.

[ close #2545 ]