Add fill_diagonal_offset()

Related to issue #1688.

Add a new function theano.tensor.fill_diagonal_offset(a,val,offset) which is currently only work for matrix  as well as the corresponding unit test.

However, as the input 'offset' is an integer, grad of it is undefined. How can I write an test_grad of an undefined grad?( the test can not past now because theano.gradient.grad_undefined will raise an exception ) 
For matrix with shape (m, n), the maximum offset vary from -(m-1) to (n-1). So I loop the test_offset in (-5, -4, -1, 0, 1, 4, 5). For matrix with shape of (5, 5), when test_offset equals to 5 or -5, nothing is actually filled in the matrix.