I think WebApp builder is your best bet. You may need to write some custom widgets like for the navigation bar though all the code you need is here:
Map navigation tools | ArcGIS API for JavaScript
The splash window is the easiest, just click it and change the text.
Clicking only selects visible layers by default.
For buffering you might add it as a task to the geoprocessing widget or make a custom widget based on code like this:
Buffer any shape | ArcGIS API for JavaScript
You can edit the query widget to add a task that will filter layers by attributes.
There's a button at the bottom of the query widget to clear the selected features.
The banner might require you to make a custom theme.
You can configure the basemap gallery widget to include whatever basemaps you want and it will effortlessly switch between them in the app.