raise an error when we encounter malformed yamls

Hi,

This patch uses 'die' to report a malformed yaml error.

Well, I dont think use $self->error in _init is a good idea since Class.pm says that $self->error is used for handling method's error, for example,

```perl

warn($obj->error) if (!$obj->do_sth);

```

When we are in _init context, return $self->error('error message') actually returns an undef that makes the object invisible to a caller and make it impossible to get $obj->{_error}.