AngularJS directive for creating forms based on schemas that aren't known until runtime