Change RAND_bytes return code in one error case

RAND_bytes now returns 0 on all errors.  Previously, -1 would
be returned if the underlying RAND_METHOD didn't support the
'bytes' callback.

- randtest now tests the error behaviour.
- Documentation updated.
- RAND_pseudo_bytes is unchanged, but its behaviour is also
  described accurately in the documentation.

Please see the extended analysis on [this blog post][blog].

[blog]: http://jbp.io/2014/01/16/openssl-rand-api/