shrink RobotoEditText height by 10%
no reason to clear the password field in LoginFrag

The password field will already be empty when creating the view in
onCreateView. No reason to clear an empty field.
reduce the use of TAG in Fragment classes

Add getBTag() to return TAG instead of directly adding it. This allows
for several cleanups to be done:

onContextItemSelected is removed in many classes
BasePhoneActivity.onCreate no longer needs the tag
FragmentIntent gets the tag from the fragment
set FragmentActivity in FragmentIntent constructor
store containerId in BaseContentFrag

Pass ViewGroup container to initBaseContentFrag in onCreateView of
BaseContentFrag classes. This allows the view id to be stored in
containerId for later use.
add Crypto.RandomSha1Hash() to generate a random sha1 hash
update classpath for android sdk r22
update MColors to use colors closer to Android's Design Colors

All the colors except one (blue) use duplicate hex values for each
color channel. For example, instead of 0x33b5e5 use 0x33bbee. Modify
the colors in MColors to use this pattern.

Android's Design Colors: http://developer.android.com/design/style/color.html
use sp instead of dp for font sizes

Android's Design guide recommends using the following text sizes:
	12sp, 14sp, 18sp, 22sp
use java's List instead of ObjectArray

ObjectArray's main use is to optimize the game engine code. It's
use in dialog and database sections is unnecessary and also prevented
using the for each loop since ObjectArray is not iterable.
fix stack overflow in Engine.NegaScout() caused by a regression

NegaScout was always increasing the search depth, which would cause
a stack overflow. This was caused by the incorrect refactoring and
cleanup in commit 8c247f618d4221d6a0b017c8423990ab418607a1.
remove moveType use board.newMove() instead

There's no reason to hold an instance of Move to create new moves.
The board instance already has newMove() to create new move instances.

Also pass a Board instance to the GameState constructor so hintList
can be initialized in the base class.
improve Move.setNull() and Move.isNull()

Only one variable in Move needs to be set as Piece.NULL_MOVE and that
is Move.index since a move is invalid if it doesn't refference a valid
index in Board.pieceType. Henceforth, there's no reason to override
setNull; and isNull becomes a check of index for a nagative value.
remove use of global move object in Engine.NegaMoveType()

remove Engine.move since a global move object will override itself
when searching deeper. Instead reuse the killer move object.

This reverts changes made in 8c247f618d4221d6a0b017c8423990ab418607a1
refactor ObjectArray to take a NewInstance so get() never returns null

changes made in 8c247f618d4221d6a0b017c8423990ab418607a1 cause null
pointer exceptions when running the engine. This is because ObjectArray.get()
was incorrectly assumed to always return a non-null value -- very bad!!!

NewInstance is a new interface with one function getInstance() that
will return a new instance of the class. ObjectArray.get() now checks
for null and creates a new instance. ObjectArray.getNull() can be used
if a null value is required.
shorten PrettyDate.agoFormat()

remove the space between the number and the time frame:
	2hr instead of 2 hr
always use single time frame:
	2hr instead 2hrs
fix regression in NumberSpinner

commit 93a4ef33bda770be608f530be605b81d8add65a4 caused the number
spinner to stop working. mCurrent wasn't being set when current
was in the range mEnd - mStart (which was always).
bump to v1.14.4