orly/pacakage/manager: Isolate package pre install step properly

Previously we would tell via callback that a package install succeeded
even if we then threw when loading the next package. This made it so
there was no possible way to rollback / you could end up with half
installed packages.
pckg -> pkg
package/manager: Make the package manager report to the pre_install steps if it's a new package version

New package version is true if it's an upgrade or new install of a package.

Fixes #70 as well.

NOTE: This is very fragile. If a user installs two independent compiles of the same package all the index id mapping stuff will blow up.
orly/package/manager: Make reinstalling the same version of a package a noop

Makes it so we don't reload packages which could cause considerable issues.

Also makes it so end-users can basically assert the packages they want are always installed before making calls by always calling install before calling into a package (Although this will waste excess cycles as the installed package set is copied).
Log to syslog when the package manager no-ops on a 'install package' request
Remove references / usage of <base/potato.h>
Remove <base/potato>, now unused / replaced by std::shared_timed_mutex
Merge pull request #76 from cmaloney/issue-70

Fixes #70
Merge pull request #86 from cmaloney/remove_base_potato

Remove base potato