solve linear equations expressed in tridiagonal form using two (either/or) functions - .solve_tridiagonal and #solve_tridiagonal

solve linear equations expressed in tridiagonal form
tridiag tests

wip

wip

wip

wip

almost there

docs

docs

tests
This does not work for `:object` currently because when the NMatrix is created, the numbers are stored as `Fixnum`'s internally and they dont upcast to `Float` if a division operation is performed on them, which produces a rounded off result, which is wrong.

A possible fix can be upcast `a`,`b`,`c`,`r` and `u` to Float with `#map!` if the `dtype` is `:object`.

Something like this: 
``` ruby

[a,b,c,r,u].each { |vec| vec.map! { |e|  Float(e) } }
```

This would obviously degrade performance for object, but it will work.

@mohawkjohn  what do you think?