program-box: Add classification._id to data
classification-form program-box: Always show the classification being edited in rootEditMode
Rename luokittelija in subscriber management filters
Distinguish different types of TV search filters
program-box rendering: Differentiate between program vs. classification code
program-box: Show a different classification html for tv-series'
Force season and episode fields to be numbers

* Also, only parse them in XML-import when the programType == tvEpisode
* Also, make linkTvSeries a bit faster by preloading tvSeriesNames
Rename utils.asDate -> utils.asDateTime
Add a real utils.asDate
Support optionally-authenticated-http-handlers

Whether the user is authenticated is determined by the existence of req.user.
Combined /public/search/ and /programs/search --> /programs/search
Basics for showing episode list and episode details under a tv-series
Use sequenceId in complaint-email
Support nested program-boxes in buttons
Fix categorisation-form selectors to work with nested program-boxes

* Pass in appropriate $program-box instead of id to simplify locating the form.
* Remove unnecessary UI-updates when categorisation done, searchPageApi.programDataUpdated will deal with it.
Change searchPage.programDataUpdated param from $row to program

programDataUpdated can find the $row by the id.
Make getProperty retrieve properties behind getters

Mongoose documents and their properties are behind getters. This
change makes it possible to use getProperty with them.
Make program deletion work with nested program-boxes
Do not show deleted episodes in list
Fix tv-series classification failures

* Fix tv-episode being moved from one series to another not recalculating old series classification
* Fix tv-episode removal not recalculating series classification
* Fix rootEditMode and relclassification failing for tv-episodes with no parent (~1500 from import)
* Fix tv-series classification taking deleted episodes into account
Can't propagate showDetails to parent program-box

Only the first program-box should handle this event. For any parent program-boxes, the program param will not match the programBox-data.