Versioned API v2

@vchuravy I'm even less sure of this after playing around with it some more.  Do you have an example use case which would absolutely need this that I can have a look at?  Using deprecated functions is really the only way to program  with both a v1.1  and v1.2 platforms, and throwing warnings everywhere is really annoying.  I think it would be better in the end to just do the checks at runtime around the functions we need this for.  We could cache the query so the cost would be a dictionary lookup.