Implement#subst

https://github.com/gogotanaka/dydx/issues/21

こちらで @huyu398 さんが明らかにして下さったように、

gsubで代入を担保するのは限界だと感じましたので、

各オブジェクトに#subst（代入） を実装しました.

ついでに #to_f 自明の代入（数値のみからなる式など）も実装しました
（これが以外と使い勝手が良い）

```
(x + y).subst(x: 3, y: 3)
# => 6

(x + y).subst(x: 3)
# => 3 + y

(2 + pi).to_f
# => 2 + Math::PI

(2 + pi).subst
# => 2 + Math::PI
```