don't use Etc.getlogin

I discovered that `mco` would become confused when called after a `su` or via Jenkins.

additionally, RDoc states:
"Returns the short user name of the currently logged in user.
Unfortunately, it is often rather easy to fool getlogin().
Avoid getlogin() for security-related purposes. [1]

replacement code taken from a bug report on the `foreman_god` project. [2]

also includes updates to the rspec tests. thanks to richardc for help!

[1] http://ruby-doc.org/stdlib-1.9.3/libdoc/etc/rdoc/Etc.html#method-c-getlogin
[2] https://github.com/embarkmobile/foreman_god/issues/1