bookmarks: allow bookmark command to take multiple arguments

This change allows setting or deleting multiple bookmarks at once. If more than
one is being set and --inactive is not given, the first one is made active.

--HG--
extra : rebase_source : 167becacc1e79d091e4d49d149ce0dbb57b97e7d
filelog: use super() for calling base functions

filelog had some hardcoded revlog.revlog.foo() calls. This changes it to
use super() instead so that extensions can replace the filelog base class.

--HG--
extra : rebase_source : 22562f1776cb6803d0c0bdfc1c4f4483b931c969
filecontext: use 'is not None' to check for filelog existence

Previously we used 'if filelog:' to check if the filelog existed. If the
instance did exist, this pattern then calls len() on the filelog to see
if it is empty. I'm developing a filelog replacement that doesn't have
len() implemented, so it's better to do an explicit 'is not None' check
here instead.

Also change _changeid() to return the _changeid attribute if it has it.
Previously it would try to obtain it from the _changectx(), and if that
did not exist it would construct the _changectx() using the linkrev. In
the extension I'm working on, filectx's don't have easy access to linkrevs
so avoiding this when possible is better.

--HG--
extra : rebase_source : 9c946d9ebbe39a766231d962773e84666db0648f