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.

Changed the transpose such that it is done in place as suggested by @andresy 

fixes #88 
fixes #77 (in most cases; when cublasSgemm permits)
depends on https://github.com/torch/cunn/pull/34