Complete `zmq_getsockopt` implementation + Documentation + Tests

Hi @fagg, how are you?

Sorry for the complete mess that I did with your original implementation, but as I was working, my mind was exploding, rising zillions of ideas, and I was not capable to organize them...

I've been working to finish the implementation of `zmq_getsockopt`... In this process I have noticed you use `switch...case` statements in order to translate between the `ZMQ_*` constants and strings. After a little thinking, I propose the usage of lookup tables. They can be easily shared and reused (in order to split the code, I have changed (again) the `make.m` file...).

I have also implemented automatic tests (and a new `make test` command). The good news are: all of them succeed for both `Windows + MATLAB (R2013a)` and `Ubuntu + Octave (3.8)`. Perhaps in the future we can use a Travis-CI integration!

I think after theses changes, just a little bit code will be enough to implement the `zmq_setsockopt` function.

I know it is a huge package of changes, but I'm looking forward to see it merged! If you disagree of the implementation details of code style, let's talk! Maybe I can change it easily.

Best Regard