Symlink a directory to wp-content/themes

You can add this to your VagrantFile for “shared folders:” config.vm.synced_folder “/path/to/your/host/projectfolder/theme”, “/path/to/your/vagrant/wp-content/theme”, owner: ‘www-data’, group: ‘www-data’, mount_options: [“dmode=775”, “fmode=664”] http://docs.vagrantup.com/v2/synced-folders/basic_usage.html

use add_action(‘wp_head’) in a widget for generating dynamic CSS styles

Once the widgets are being evaluated, the head of your site is completed, so you cannot use wp_head anymore. Adding <style> tags is an option, but will indeed generate a warning from the validator. Using the customizer is possibly confusing, because it is supposed to be about theme looks in general, not about specific widgets. … Read more

Custom theme sufficient or custom plugin neccessary for this feature set?

WordPress will not automatically provide these features. From what you are describing, you will want to create custom post types, a taxonomy or two for classification and custom fields for the post types. You COULD build all of this into a WordPress theme but the generally advised approach is to wrap your functionality into one … Read more