This commit refactors the main package to move most of the start up functionality
into a new boot package so that this functionality can be shared with the new
mobile package. The gomobile compiler prevents creating bindings for a main
package which is why we need to do it this way.
This commit refactors the main package to move most of the start up functionality into a new boot package so that this functionality can be shared with the new mobile package. The gomobile compiler prevents creating bindings for a main package which is why we need to do it this way.