Split data.js into option.js and either.js
Add getInstance(self, constructor)

Returns self if an instance of constructor or creates an empty object
with the correct prototype. Refactor bilby to take advantage of the
new function.