Version disambiguation

In ancient times, we had `type tls_version = SSL_3 | TLS_1_0 | TLS_1_1 | TLS_1_2`, but then we wanted to be more correct in respect to rfc 5246 (E.1) and support future (minor) version, introducing `TLS_1_X of (int * int)`. Unfortunately all pattern matches were partial from then on (well, already with `SSL_3`); and introduced some bugs already, such as #161).

To solve this once and forall, I introduce a `tls_any_version` type, which includes everything (and thus is used in a `client_hello` read from the network; in the header of a tls record (when read from the network); and in the `client_version` (part of handshake_params).

Now, the supported versions within the stack, and the known versions to that stack are explicitly distinguished -- if we assemble a `client_hello`, we only allow for a `tls_version` (whereas previously a partial match was done, and an exception might have occured).