Polish the RCP implementation

We have removed unnecessary functions too.
Declare the subs method
Reshuffle the declarations
Improve a comment
Port rcp_const_cast() from Teuchos
Implement Symbol::subs()
Allow to modify refcount from const methods
XX check this patch (should be ok)
Add test_subs test
Expose rcp_const_cast from Teuchos
Initial implementation of Add::subs()
Add another test
Refactor test_subs
Implement Mul::subs()
Implement Pow::subs()
Add another test
Fix a bug, add a test
Fix a bug, add a test
Add a better default implementation of Basic::subs
Remove redundant method