Wrap eval_double in Python

And add tests.
Wrapper class special methods
Merge pull request #329 from certik/eval_double

Wrap eval_double in Python
Implement `eye` function
Add tests
Implement `diag`
Add tests for `diag`
Make Basic::diff() return Derivative

Previously it raised a "not implemented" exception. Now it simply returns an
unevaluated derivative.
Test that abs(x).diff(x) does not raise exception
Make sure abs(x).diff(y) == 0

Previously it returned a Derivative
Implement `ones` function and `zeros` function
Add C++ tests for abs(x).diff(y) == 0
Add tests for `ones` and `zeros`
Merge pull request #331 from isuruf/wrappers

Wrapper class special methods
Refactor `eye` to use `diag`
Fix test failure: Avoid comapring `unsigned` and `int`
Function Symbols with multiple arguments
Fix repeat sympify
Merge pull request #333 from certik/abs_diff

Polish abs(x).diff()
Add test and fix formatting