Bugfix/issue 464 diag pre multiply

#### Summary:

Adds diagonal pre- and post-multiplication with tests.

#### Intended Effect:

Same as summary.

#### How to Verify:

Inspect and run tests.  I added basic double-based tests and reverse-mode auto-diff tests.  There were already forward-mode auto-diff tests.  Along the way, I added general matrix equivalence tests and reverse-mode auto-diff matrix equivalence tests.  

#### Side Effects:

None.

#### Documentation:

The methods were already documented, but hadn't been implemented and tested properly.

#### Reviewer Suggestions:

Anyone.