Mooify, and allow user/passwd to be lazy.

In my class that uses this role I've got stuff like this:

```
has '+user' => (
    is => 'ro',
    default => 'foobar',
);

has '+passwd' => (
    is => 'lazy',
);
sub _build_passwd {
    my ($self) = @_;
    ... # Find password for $self->user().
}
```

But this role uses the predicates to know if the user and passwd attributes are set.  I've fixed this, and also Mooified the role.  Hope you like!  I've updated the tests and they pass, and this also passes by own code that depends on this role.