MAHOUT-1282: Optimize Diagonal matrix multiplication. add left/right multiply versions

Squashed commit of the following:

commit 2aa56618c3129e6735a84f990defe12c238e0736
Merge: 4b23cd8 0afce8a
Author: Dmitriy Lyubimov <dlyubimov@apache.org>
Date:   Tue Jul 30 22:31:28 2013 -0700

    Merge branch 'trunk' into MAHOUT-1282

commit 4b23cd8870336d36d40792fa33c7524f69f40448
Author: Dmitriy Lyubimov <dlyubimov@apache.org>
Date:   Sat Jul 27 22:33:53 2013 -0700

    added license header.

commit 29f3722e0805bd2b3087dfa695b133c5bc8f67a4
Author: Dmitriy Lyubimov <dlyubimov@apache.org>
Date:   Sat Jul 27 22:25:15 2013 -0700

    Renaming associative multiplication to timesRight and timesLeft (to conform to generic "times").
    Added MatrixTimesOps marker interface to mark implementations supporting timesLeft and timesRight.

commit a353f53401207453497921b4bb36797450acf6dd
Author: Dmitriy Lyubimov <dlyubimov@apache.org>
Date:   Wed Jul 10 17:47:54 2013 -0700

    Adding optimized left and right multiplications to the diagonal matrix.

git-svn-id: https://svn.apache.org/repos/asf/mahout/trunk@1508732 13f79535-47bb-0310-9956-ffa450edef68