<p>How can I vary the infill percentage for different layer heights of my model?</p>

<p>Context: The bottom part of my model needs about 20% infill.  The geometry of the top part of the model (mostly cones of various sizes) prints well with 0% infill and is of course a lot faster to print if I can specify this.</p>

Your question is very similar to
Different infill in the same part
and
Using multiple infill types within one model [duplicate]
. The difference is that you specifically ask for Slic3r and a variation in layer height infill percentage.
Actually
this answer
describes using "helper volumes" in Ultimaker Cura to set different properties for certain parts of the model
(
UPDATE
: that answer now includes also Slic3r instructions)
, but it appears that this answer is very much applicable to Slic3r also. Please read
this
posting. Quoting from the reference:
Finally, I fired Slic3r up and loaded the main part, then clicked on
  Settings... and then hit Load modifier... I loaded the new volume as a
  modifier mesh and I applied 100% solid infill...
Secondly,
this
answer where 2 different infill percentage sliced models are manually combined at a certain height may also work for you (this is a perfect valid solution for Slic3r, but requires some editing skills).
Basically, although you request for a solution for a slicer other than already described in other questions, boils down to a similar answer, the only difference is the implementation in Slic3r is called differently.
To do this in
Slic3r
see
this reference
.
The blog describes the use of a simple volume (the green volume loaded from an STL file). After loading:
Right-clicking on the main part brought up the object settings menu.
  From there, clicking "Load Modifier" and selecting the previously
  saved model adds it to the part as a modifier.
The green "+" was selected and "Fill Density" was added to modifier
  list and set to 100%.
This shows that the functionality in Slic3r is very similar to the functionality in Ultimaker Cura.