Structure looks good. Having a folder for reusable stuff is a good idea. Not sure your widget should have its own model and for the past year or so I've been putting the views in the folder next to the JS file along with the test files.
You can pass the model into the Control as an option. That way the widget relies on the Model API, but the data that it operates on can be different (Contact, Categories, Locations, etc).