Clean up syntax, add if/else, add more examples, restructure

- The distinction between core and derived operators wasn't useful.
- if/else introduced to get rid of chains of duplicated conditions.
- now all assertions start with ? or !.  If it doesn't start with one
  of these, it's not an assertion but either a literal (such that it
  only pushes) or an operator (such that it pops and pushes).