added conditional statements to check that the track isn't null for the onmidi callbacks
fixed the host.createMasterTrack function call
added a enable_preset_switching, bpm_low and bpm_high options
implemented changes to facilitate the bcr controller

- added macro bank constants
- added some conditional constructor options based on the value of options.enable_preset_switching
- added parameter_offset parameter
- added tempo_lock parameter
- added master_volume_lock parameter
- added transport_lock parameter
- moved the location of enable_output and set to true in init
- added a function BCR.BCR2000Controller.prototype.calc_preset_switch
- added a function BCR.BCR2000Controller.prototype.switch_preset
- added midi callbacks for the parameter encoders, tempo controller, and master volume control to BCR.build_control_layout
- added conditionals to the control definitions to handle different functionality for different controls in the same section
- no parameter encoder functionality is done yet
- added parameter indexes to the parameter encoder controls
- added basic single-group encoder functionality (all 4 groups only acts on 0-depth macro bank)
- added tempolock callback
- added transportlock callback
- added mastervolumelock callback
- removed copied bcf2000 bind_observers functionality
- added placeholder for the macro observer function
- added tempo observer callback
- added placeholder for parameter observer callback
- added master volume observer callback
- bound both master volume and tempo callbacks to their observers