Step one of abstracting package description format

Initial pull request for abstracting package description file format.  This is the first pull request to support SDL packages.  It will likely take a couple more pull requests to fully support SDL. There are a couple designs in here that the DUB developers may want to change, feel free to let me know if anything that bugs you, I'm not too particular with the details of this PR but the faster it gets merged the faster I can start work on the next commit.