refactored nn.Linear into C/CUDA methods

This PR makes nn.Linear non-blocking (in most cases). 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 (in most cases; when cublasSgemm permits)