core specific code improvements

- use site code instead of site.lang
- replace page.get() with page.text
- replace page.put() with page.save
- remove old setAction method

Change-Id: Ife82ea3dd66e8e0393ea03741dbd869d852289f9
improvements to pagefromfile.py

- PageFromFileRobot extends pywikibot.Bot using an options dict
- use config.default_edit_summary setter instead of .setAction()
- change page.put() to page.save()
     and self.put() to self.save()
- "Top" and "Bottom" values are now lowercase
- fix pep8 error
  E265 block comment should start with '# '

Change-Id: Ie46eb9a003c9893a24dc01fe0b0cbf854f367187
improvements to unlink.py

- UnlinkBot extends pywikibot.Bot
  with built-in 'always' option
- BREAKING: require the page name to be wrapped in quotes
- use core-like page.save
- remove obsolete script name from showHelp
- make localized strings depend on the actual working site

Change-Id: I24757c086d1eda88d71148a547aebaa8aeca56ec
tests should use tests/i18n

'setup.py test' fails calling twtranslate as 'scripts' is not packaged.
use messages in tests/i18n for tests.

Change-Id: Ie4f77a8ace594619fee98996cc4403915316b51b
Log the script start date and time UTC

The date can be helpful when looking at an old log file,
and is a cheap way of recording what the pywiki repo version
was at the time the command was run.

Change-Id: I02e97f59f07e1321c69181e2dc10a6c919603f9b
improvements to reflinks.py

- ReferencesRobot extends pywikibot.Bot
  and uses self.userPut()
  (with built-in 'always' option)

- use core-like page.text when possible

- pep8-compliant comments

Change-Id: Idd851f6e1e2e6f81888854713324f602d44c0b54
use site method apipath() instead of Family.apipath()

this ensures the site code is used instead of site.lang

Change-Id: Ic6b314c56923a3aba2d6e6be35940b3931f707e9
Merge "Log the script start date and time UTC"
Code improvements of revertbot

- Adding option of "username" so you can revert edits of another one
- Adding some documentation
- Using page.text and page.save instead of page.put()

Change-Id: Id3d532638d6b09ce45a599d2c910dda09eb7b6a4
Merge "Code improvements of revertbot"
(bug 66403) enable redirect.py follows section links

site.getredirtarget() didn't take into account sections and also
page.getRedirectTarget() didn't find the section. This is a
breaking change againts compat behaviour and causes redirect.py
to fail. This patch looks for the section in the redirect target.

Additional improvements:
- normalize title by api result
- title encoding for Exception messages

Change-Id: I4b6d7f32fc1ec79eb962fa8d21d283b4fe783fbf
(bug 66523) Do not break script when wikidata item does not exists.

Now we just ignore the given page.

Change-Id: I823fff01427d6559eadf1aef92d7c77e420aa72b
use site methods instead of family methods

- remove BaseSite.linktrail() which is already derived from
  Family.linktrail(code) by BaseSite.__getattr__()
- port the doc string to the corresponding family method
- remove BaseSite.nice_get_address() which is already derived from
  Family.nice_get_address(code) by BaseSite.__getattr__()
- use methods version(), protocol(), hostname()

Change-Id: I33c9e6db6c2797bb7e637f3c46cb8af7f08037b8
(bug 66445) New "prop" parameter with action=expandtemplates

In 1.24wmf8, expandtemplates without prop parameter causes API warning.

Change-Id: I2c164208aa10dc893693c520d38f0386be202d5e
Merge "(bug 66445) New "prop" parameter with action=expandtemplates"
Merge "use site methods instead of family methods"
Fix for nice_get_address(): use Page.title(asUrl=True) as param

Change-Id: I345098a0a3905f8e09fce57197d9fa5393d0b54f
Bump Wikimedia family version to 1.24wmf8

This is needed to complement I2c164208aa10dc893693c520d38f0386be202d5e

Change-Id: I639029f1aeffb047cc2f47340107f137434f08ce
Merge "Bump Wikimedia family version to 1.24wmf8"
Replace site.language() with site.code

Change-Id: I5bbc64720051ed504cff8328e2ea2eeef82dbf96