Removed external dependency and added unsubscribe

Removed the dependency on jlaska's custom type. Wrote my own and
integrated into the module. Added the ability to unsubscribe by setting
$ensure to absent.