pass display as an argument to unit::invalidate

Previously it always used the singleton display function, but this
seems better.
remove unnnecessary location argument from unit::invalidate

This function was always called with the current location of the
unit as the argument, so we simplify it.
unit animation fcns become const

This commit makes the main unit animation accessor / mutator
functions applicable to const units, and makes the animation
state member variables mutable to allow this.

const'ed member functions:

set standning
idling
selecting
ghosted
disabed_ghosted
clear_haloes
refresh
invalidate
redraw

mutable member variables:

animation state enum
boost scoped pointer anim_ (can be reset in the redraw fcn)
next_idling_
frame_begin_time_
unit_halo_
refreshing_
draw_bars_

The purpose of this is to improve encapsulation of units, as now
we can use const units in the display functions, and reserve non-
const unit references for use in the game logic.
invalidate units fcn treats units as const

Since the relevant functions are const from previous commit.
unit redraw fcn treats units as const
display object uses a const unit_map * internally

This was made possible because const units may now be drawn and
animated. There are some clients of the display object that still
call display::get_units, which is a non const getter, and which
we support by a const cast. The next step of refactor is to get
rid of that, but in this step we have at least gotten rid of all
internal uses of the non-const unit map.
display::change_units takes a const argument
facing and hidden become mutable attributes of unit

This is needed to be able to do animation with const units.
only const unit_map in display, unit_attack fcn uses game_board

This commit makes all the necessary changes to allow
display::get_units() to return a const unit_map rather than non-
const, and to eliminate display::get_const_units(). This allows
us to eliminate a const cast introduced in prior commit.

In leader_scroll_dialog, unit_animation, and some places in
unit_display, we change the call display::get_const_units to
get_units, and mark the return type as const.

In unit_display::unit_attack, we can't do this because that fcn
also calls unit::take_hit which is part of the game logic and
should not become const. We make that function take a reference
to game_board instead and pass resources::game_board from the
caller. Also we pass display in as an argument from the caller,
to improve encapsulation marginally.
Merge branch 'units_draw_const'