Refactors to make status fetching reusable
Makes the app more robust, and returns status on powering on/off.

Calculates the size of the statuses object instead of hardcoding the
number of times we should wait to call the callback. Passes the status
to the callback instead of relying on a global variable.
Waits 2.5 seconds for the GoPro to update its status before responding.
Adds the ability to access all commands through dynamically generated routes.