(#14522) Don't read /proc/self/status on Solaris

/proc/self/status isn't a standard file on Solaris and can't be read as such.
Attempting to read it when using ruby 1.9.3 produces errors such as 'invalid
byte sequence in US-ASCII'. According to
http://www.ruby-forum.com/topic/163804, /proc/self/status is a sparse file with
a map at /proc/self/map to indicate which parts of the file to read. As a
stopgap measure, this commit simply returns false on Solaris, rather than
trying to read the file.
(#14522) Force encoding of data read from /proc/self/status

Without this patch the previous fix for this issue worked well, but was
actually testing and fixing a different problem than described in the
issue.  Reading the /proc/self/status file on Solaris works well,
however the file contents are very different from the Linux platform.
On linux the file contains US-ASCII encoded text which is fully
compatible with our default UTF-8 encoding.  On Solaris, however, the
file is raw data representing the memory space of the process.  This raw
data has no encoding, and as such, causes the invalid byte sequence when
compared with a regular expression.

This patch addresses the problem by forcing the encoding of the string
into UTF-8, removing any invalid characters.  The comparison is not a
problem on MRI versions which do not have `String#encode!`.
Merge branch 'haus-ticket/1.7.x/14522_dont_read_proc_on_solaris' into 1.7.x

* haus-ticket/1.7.x/14522_dont_read_proc_on_solaris:
  (#14522) Force encoding of data read from /proc/self/status
  (#14522) Don't read /proc/self/status on Solaris

closes #421