Custom binIDs [WIP: Needs some frontend work still]

Changes to support custom bin IDs for #82. Also makes changes that effectively implement the activity refreshing the expiration (#101) as any request to a bin that doesn't exist will create said bin instead of 404ing. We'll need to talk more about whether or not the data should actually persist more than 48 hours based on activity. 
This function needs a doc comment!