Make everything intuitiv

+ Rename deps -> pkg
+ Rename repo -> catalog
+ Rename plugin -> parser
+ Seperate backend/repo into backend/catalog
+ Make API in epm_{pkg,catalog} consistent
+ Add pluggable backend for epm_catalog
+ Always pass configuration to ensure correct app state
+ Make common log fun in epm:log
+ Move os & cache specific fun's in own modules
+ Add API docs
+ Add support for k/v options in epm config
+ Add --rebar option to work directly with rebar
+ Clearer responsibility for epm_pkg vs epm_agent_*
+ Add general logging throught epm:log/3
+ Seperate cache related code into own module
+ Remove epm_utils.erl, epm.hrl
+ Add epm_os:* for OS interaction (Adds error code to old epm_utils:cmd call)
+ Add lenses to fetch a specific dependency graph
+ Add config callbacks
+ Add 2nd callback for epm:unless/2 and epm:ifthen/2
+ Add support for traversing config and lists of catalogs
+ Move git related functions into their own module -> epm_git
+ Make git agent work with packages instead of paths
+ Add epm_pkg:flatten/1 for getting all dependencies