refactored nn.Linear into C/CUDA methods

This PR was fun. It makes nn.Linear non-blocking. Includes unit tests. It should be backwards compatible for serialized modules. It refactors the nn.Linear Lua code into C/CUDA files such that we can do specific fixes for torch.CudaTensors and such.

fixes #77