Implementation of astropy.vo.samp from SAMPy

Since @lpaioro no longer has time to port SAMPy to ``astropy.vo.samp``, I have rebased his branch (which also includes many contributions from @cdeil) and re-opened a pull request. This is still work in progress. Here is the to-do list copied from #972 which is now superceded:

- [x] Change the license
- [x] Make it compatible with Python 3
- [x] Write tests
- [x] Fix hub script (currently requires SAMPLog)
- [x] Write documentation for web profile
- [x] Make sure that web profile dialog can be overridden by tools, and move SAMPHubServer instantiation to advanced instructions.

cc @lpaioro @cdeil @mdboom @pllim @eteq

The latest docs can be viewed here: http://astrofrog-debug.readthedocs.org/en/latest/vo/samp/index.html

Getting this completely ready to go will be a big task, so we may not manage before 0.4 - though we should try! Contributions welcome :)

Issues that I have run into (don't need to all be addressed before this is merged):

* [ ] If registering then unregistering a web SAMP client, the hub can no longer be stopped with control-C and has to be killed => #1967
* [x] The web profile command-line pop-up is in a different thread and so the yes/no input prompt doesn't work if the hub was started in an interactive Python session.
* [x] Is there a way we can test the web profile from py.test? => #1966