Add triangle/nonzero functions

Triangle:
- Adds Tri op
- Adds tensor.tri, tensor.triu, and tensor.tril functions that wrap Numpy equivalents

Nonzero:
- Adds Nonzero op 
- Adds tensor.nonzero, tensor.flatnonzero functions that wrap Numpy equivalents
- Adds tensor.nonzero_values to get around lack of advanced indexing for nonzero elements

- Unit tests