userdata improvements, functional improvements

Container improvements are shelved as per discussion [here](https://github.com/Rapptz/sol/issues/32#issuecomment-45474549). I had fun contributing. If you would like to tackle container problem in a different fashion, let me know. Also solves issue #25.