create a ipynbv3 json schema and a validator

cf http://json-schema.org/
http://tools.ietf.org/html/draft-zyp-json-schema-03

autogenerated from
http://www.jsonschema.net/index.html#
then tweeked.

This version makes all our notedooks in docs/example/notebooks valid
change prompt_numper type

prompt number type was number or string ('*', '&nbsp')
require it to be either number, or null
prompt_number : number -> integer
number -> integer
limit cell_level and nbformat(minor) values
require prompt number for code cell
import jsonpointer and schema from external
Add jsonschema liscence in external
update json pointer
update Jsonschema version
import argparse from external
Document how test_message_spec works
Add version_request/reply messaging protocol
Add a test for version_request in test_message_spec.py
Change version protocol according to the discussion in #2649
Remove version field from msg_header
Start protocol version from 4.0
Rewrite VersionReply spec using List and Unicode
Fix test failure in Python 2.6
Document version request messaging protocol