Fix #630 Builder: Update Table Name when module name is changed

Added a JavaScript function (bonfire.builder.prepTableName()) to prepare
the module name to be used as the table name (further information
below).

Updated show_table_props(), which executes on load and when clicking the
create table/existing table radio buttons to use the function, passing
the tblName variable to preserve the existing behavior (only updates the
table name when it is empty if clicking the radio buttons).

Added event handlers to the module name input (on click, focus, and
blur) to call the function with an empty value, causing the table name
to update any time the user interacts with the module name. It may be
desirable to modify this to just use the change event, which can be done
by modifying the last line of the file to the following:
$('#module_name').on('change', {valueToPrep: '', setTableName: true},
bonfire.builder.prepTableName);

prepTableName takes an object as its only argument, with all valid
properties (and their default values) listed in
bonfire.builder.prepTableDefaults. The function also works as an event
handler, in which case it expects to receive an event object with a data
property which acts as the function's normal argument (this is the
behavior when passing the object to jQuery's $.on() method to bind an
event handler).

If the valueToPrep property is empty (the default), it will pull the
value from the module name field (or any field indicated with the
moduleNameSelector argument).

If the setTableName property is true (the default), it will output the
prepared value to the table name field (or any field indicated with the
tableNameSelector argument).

The function always returns the prepared value (unless there's an error
of some sort that prevents execution).