Add support for fetching a dependency by it's path relative to a package
Update config interface

+ Add global storage using gen_server
+ Start using 'pkgs' instead of 'deps' in #cfg{} record
+ Automatic startup of epm_store
Improve parsers (epm_store, isolation etc)

+ Use epm_store:{get,set} directly to always keep a updated config
+ Add package isolation
+ Add partial packages (append values to pkg)
+ Add concept of template pkgs
Always set catalog in github catalog templates
Set pkg template flag to false when copying a pkg
Update to gen_server based configuration

+ Cleanup rebar parser
+ Add support for listing configs
+ Make all hooks needed for creating isolated configs
+ Add default "master" ref to git agent
+ Include top-level project in pkg hirarchy, for multi-apps configs later
+ Add dummy agent (epm_agent_void) for top-level apps
+ Remove cfghook callback system
Fix error where re-defining toplevel package would break config

If a re-define operation is called (<-) the toplevel project gets deleted
Code consistency, epm_store:get should always return {ok, _} on success
Use binary names when adding Rebar config
Improve print output

+ Add support for custom formating option
+ Add support for multiple configurations
Fix minor issue in epm_store return value (wrapped in {ok, _})
Add a whole lot of safty

+ Wrap handle_call bodies in try/catch to avoid crashing epm_store
+ Wrap outer functions in epm_store with try/catch to return appropriate {error, _} term
+ Add some debugging to EPM parser to get a hint of error location
+ Map overlapping pkg paths to correct {AbsName, PkgPath}
Allow for pkgs without any parsers
Make more sense out 'isolated config' notice
merge: 4bf4cc4197920037de45ba709f32acc048afe42b
Agent init function should update epm_store config directly
Correctly reduce full path from AbsName and PkgPath even w/overlap
Pretty print epm_store exceptions
Allow isolated checkouts by appending config root
Update sync loop with more informative output